How to prevent flash messages from reappearing when a page is
refreshed.
I show flash message through javascript, that basically created an
overlay div and shows the flash. When the the overlay is dismissed the
flash div’s contents are emptied as well, but I notice that when a
page is refreshed (for example, user logs in -> gets redirected to
home page -> is shown “Welcome user” flash), the flash message keeps
reappearing.
Thanks
<% if !flash.nil? %>
<% if flash[:notice] %>
<% end %>
<% if flash[:success] %>
<% end %>
<% if flash[:error] %>
<% end %>
<% end %>
function showFlash(msg, tp) {
if ($(’#flash_messages_container’).length > 0) {
flashAnimatedHide();
}
var flashContainer = $("<div id='flash_messages_container'
class=‘flash-messages " + tp + " ‘>");
flashContainer.prepend("
" + msg +
“
”);
$(‘body’).prepend(flashContainer);
flashContainer.animate({
opacity : .1
}, ‘500’, function(){
flashContainer.css(‘opacity’, 1)
})
$(‘body’).css(‘margin-top’, flashContainer.outerHeight());
$(’
#close_flash’).click(function() {
flashAnimatedHide();
$(‘body’).css(‘margin-top’, ‘0’);
});
}
UPDATE
I suspect this is happening since I starting using etags for cient
side and reverse proxy caching. So I guess the refresh is simply
loading the cached page, which contains the flash messages in the
flash container. So how do people discard flash when caching is
enabled?