我想在浏览器中显示页面时触发一些代码:
$(function() {
console.log('got ready event!');
});
Run Code Online (Sandbox Code Playgroud)
仅当浏览器下载页面时才会触发此事件。如果我导航到不同的页面,然后返回,则不会触发上面的代码片段。浏览器似乎缓存了页面状态,因为页面显示时服务器没有收到任何请求。因此,当我返回页面时,它会恢复缓存的页面状态而不触发ready事件。
是否有一个事件我可以在页面显示时监听,无论页面是否被缓存?
小智 5
我知道这是一个老案例,但我也曾为此苦苦挣扎。“pageshow”可以完成这项工作,但似乎您必须将此事件绑定到窗口而不是文档。因此,代码必须如下所示:
$(window).on('pageshow', function(){ alert('page show'); });
Run Code Online (Sandbox Code Playgroud)
该指令cashe-control:no-cashe指示不应使用缓存的信息,而应将请求转发到源服务器。
<meta http-equiv="cashe-control" content="no-cashe">
Run Code Online (Sandbox Code Playgroud)
尝试一下pageshow活动:
该事件的工作方式与 load 事件相同,只是每次加载页面时都会触发该事件。第一次加载页面时, pageshow 事件在 load 事件触发后立即触发。pageshow 事件使用名为 persisted 的布尔属性,该属性在初始加载时设置为 false。如果不是初始加载则设置为true(换句话说,当页面被缓存时设置为true)。
$(document).bind('pageshow', function(){
// ...
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3106 次 |
| 最近记录: |