javascript – “重新打开上次关闭的标签”,导致显示最后的ajax请求内容

前端之家收集整理的这篇文章主要介绍了javascript – “重新打开上次关闭的标签”,导致显示最后的ajax请求内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 HTML 5历史API来保存ajax请求时的状态,如果用户请求同一页面没有ajax请求,我提供完整的html内容.

浏览器的“重新打开最后关闭的选项卡”功能带来了最后的ajax请求内容而无需点击服务器.如果浏览器会在没有带上一个请求内容的情但浏览器只显示最后的ajax请求内容.

我在Chrome 17,Firefox 10上遇到过这种情况.(我没有在ie9上试过它,因为它没有支持历史api)

什么是这个问题的众所周知的解决方案?

编辑:这些ajax请求只是对服务器的“获取”请求.

它真的不可能在jsfiddle.net中展示它,因为几乎没有理由.你可以在你的localhost中演示它,如下所示.

向服务器发出“get”请求并拉出json对象,然后将该url推送到历史api中,如下所示.

history.pushState(null,null,url);

然后关闭该选项卡,然后单击浏览器的“重新打开上次关闭的选项卡”功能.你看到了什么 ? Json回应身体?浏览器显示它而不向服务器发出请求,对吧?

解决方法

问题是由http响应标头引起的.标头包含ajax请求的可缓存信息,因此浏览器显示缓存中的url内容而不会访问数据库.

从响应头中删除缓存参数后,浏览器能够在不从缓存中提取内容的情况下访问服务器.

猜你在找的Ajax相关文章