ajax – 如何检测用户是否使用后退按钮到达一个页面?

前端之家收集整理的这篇文章主要介绍了ajax – 如何检测用户是否使用后退按钮到达一个页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题类似于 Track when user hits back button on the browser,但不一样…我有一个解决方案,并将其发布在这里供参考和反馈。如果任何人有任何更好的选择,我都耳朵!

情况是,我有一个页面,“in place edit”,一个flickr。也就是说有一个“点击这里添加一个描述”DIV,当点击变成TEXTAREA与保存和取消按钮。单击保存将数据发布到服务器以更新数据库,并将新描述放在DIV中,而不是TEXTAREA。如果页面被刷新,则使用“点击编辑”选项从数据库显示新的描述。相当标准的web 2.0东西这些天。

问题是如果:

>页面加载时没有说明
>用户添加描述
>通过单击链接导航页面
>用户单击后退按钮

然后,显示的(从浏览器的缓存)是没有动态修改DIV的页面的版本,包含新的描述。

这是一个相当大的问题,因为用户假定他们的更新已经丢失,并不一定明白他们需要刷新页面来看到更改。

所以,问题是:如何标记页面被加载后被修改,然后检测用户“回到它”,并强制刷新在这种情况下?

使用隐藏表单。当您重新载入或按下返回按钮返回页面时,表单数据将保留(通常)在浏览器中。以下内容会出现在您的网页(可能位于底部):
<form name="ignore_me">
    <input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" />
</form>

在您的javascript中,您需要以下内容

var dirty_bit = document.getElementById('page_is_dirty');
if (dirty_bit.value == '1') window.location.reload();
function mark_page_dirty() {
    dirty_bit.value = '1';
}

侦听表单的js必须在html完全解析之后执行,但是如果用户延迟是一个严重的问题,你可以将表单和js同时放在页面顶部(js秒)。

猜你在找的Ajax相关文章