每当浏览器中显示一个页面时,我都想触发一些代码:
$(function() {
console.log('got ready event!');
});
仅当浏览器下载页面时才会触发此事件。如果我导航到其他页面,然后返回,则不会触发上述代码段。似乎浏览器缓存页面状态,因为服务器在显示页面时不会收到任何请求。
因此,当我返回页面时,它会恢复缓存的页面状态,而不会触发ready
事件。
无论页面是否被缓存,是否有可以在显示页面时收听的事件?
答案 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(){
})