3

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

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

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

每当显示页面时,无论页面是否被缓存,我都可以收听一个事件吗?

4

2 回答 2

3

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

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


尝试pageshow事件:

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

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

})
于 2012-06-10T03:04:34.673 回答
2

我知道这是一个老案子,但我也为此苦苦挣扎。“pageshow”可以完成这项工作,但似乎您必须将此事件绑定到窗口而不是文档。因此,代码必须如下所示:

$(window).on('pageshow', function(){ alert('page show'); });
于 2016-02-24T17:14:57.937 回答