缓存页面上的就绪事件?

时间:2012-06-10 02:43:38

标签: jquery

每当浏览器中显示一个页面时,我都想触发一些代码:

$(function() {
   console.log('got ready event!');
});

仅当浏览器下载页面时才会触发此事件。如果我导航到其他页面,然后返回,则不会触发上述代码段。似乎浏览器缓存页面状态,因为服务器在显示页面时不会收到任何请求。 因此,当我返回页面时,它会恢复缓存的页面状态,而不会触发ready事件。

无论页面是否被缓存,是否有可以在显示页面时收听的事件?

2 个答案:

答案 0 :(得分:1)

我知道这是一个古老的案例,但我也在努力解决这个问题。 " pageshow"可以做这个工作,但似乎你必须将此事件绑定到窗口而不是文档。所以,代码必须如下所示:

$(window).on('pageshow', function(){ alert('page show'); });

答案 1 :(得分:0)

试试这个,指令cashe-control:no-cashe表示不应该使用缓存信息,而是应该将请求转发到源服务器。

<meta http-equiv="cashe-control" content="no-cashe">

<小时/> 尝试pageshow事件:

  

此事件与load事件的工作方式相同,只是每次加载页面时都会触发。第一次加载页面时,pageshow事件在加载事件触发后立即触发。 pageshow事件使用名为persisted的布尔属性,该属性在初始加载时设置为false。如果它不是初始加载,则设置为true(换句话说,在缓存页面时将其设置为true)。

$(document).bind('pageshow', function(){

})