我在页面上有一个“新项目”徽章,我想在页面从缓存加载后立即更新(即点击“后退”或“前进”返回此页面时)。实现此目标的最佳方法是什么?
设置非常简单。该应用的布局每 8 秒查找一次新项目,并相应地更新徽章 + 项目列表。
$(function() {
setInterval( App.pollForNewItems, 8000 );
});
当有人离开此页面查看某个项目的详细信息时,可能会发生很多事情。在任何用户查看它们之前,事物都是“新的”,并且该应用可能会有多个用户同时使用它(用于调用中心或支持票证的工作流类型)。
为了确保徽章始终是最新的,我有:
$(window).bind('focus load', function ( event ) {
App.pollForNewItems();
});
..虽然这可行,但仅当页面从缓存中加载时,轮询“加载”上的新项目才有用。是否有一种可靠的跨浏览器方式来判断页面是否正在从缓存中加载?
最佳答案
Navigation Timing 现在在大多数浏览器中都有(ie9+) http://www.w3.org/TR/navigation-timing/#sec-navigation-info-interface
if (!!window.performance && window.performance.navigation.type === 2) {
// page has been hit using back or forward buttons
} else {
// regular page hit
}
关于javascript - 我的页面是从浏览器缓存中加载的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433769/