如上所述,我找到了一个解决方案,并将其发布在此处以供参考和反馈。
解决方案的第一阶段是在页面中添加以下内容:
<!-- at the top of the content page -->
<IFRAME id="page_is_fresh" src="fresh.html" style="display:none;"></IFRAME>
<SCRIPT style="text/javascript">
function reload_stale_page() { location.reload(); }
</SCRIPT>
的内容fresh.html
并不重要,因此满足以下条件即可:
<!-- fresh.html -->
<HTML><BODY></BODY></HTML>
当客户端代码更新页面时,它需要标记修改,如下所示:
function trigger_reload_if_user_clicks_back_button()
{
// "dis-arm" the reload stale page function so it doesn't fire
// until the page is reloaded from the browser's cache
window.reload_stale_page = function(){};
// change the IFRAME to point to a page that will reload the
// page when it loads
document.getElementById("page_is_fresh").src = "stale.html";
}
stale.html
完成所有工作:加载后将调用 reload_stale_page
函数,函数将在必要时刷新页面。第一次加载时(即,在进行修改后,该reload_stale_page
功能将不会执行任何操作。)
<!-- stale.html -->
<HTML><BODY>
<SCRIPT type="text/javascript">window.parent.reload_stale_page();</SCRIPT>
</BODY></HTML>
从我目前的(最低)测试来看,这似乎可以正常工作。我有没有忽略什么?