当前位置: 首页 > 面试题库 >

“重新打开上一个关闭的选项卡”导致显示上一个ajax请求内容

段干长恨
2023-03-14
问题内容

我正在使用HTML 5历史记录api来保存ajax请求发生时的状态,并且如果用户请求到同一页面而没有ajax请求,则我会提供完整的html内容。

浏览器的“重新打开上一个关闭的选项卡”功能带来最新的ajax请求内容,而无需访问服务器。如果浏览器将请求而没有带来最后的请求内容,那么一切都会正常进行。但是浏览器只显示最后一个ajax请求内容。

我已经在Chrome 17,Firefox 10上体会到了这一点。(我没有在ie9上尝试过,因为它没有支持历史记录api)

有什么众所周知的解决方案?

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

出于某些原因,实际上不可能在jsfiddle.net上进行演示。您可以在本地主机中进行演示,如下所示。

向服务器发出“获取”请求并提取json对象,然后将该网址推送到历史记录api中,如下所示。

history.pushState(null,null,url);

然后关闭该标签,然后单击浏览器的“重新打开上一个关闭的标签”功能。你看到了什么 ?杰森反应身体?浏览器显示它而不向服务器发出请求,对吗?


问题答案:

问题是由http响应标头引起的。标头包含有关ajax请求的可缓存信息,因此浏览器显示了来自缓存的url内容,而没有命中数据库。

从响应标头中删除缓存参数后,浏览器便能够访问服务器而不会从缓存中获取内容。



 类似资料:
  • 问题内容: 我有一个常规的Twitter Bootstrap 3标签。我要做的就是控制 一个元素来控制多个容器。 在此示例中,当我更改标签时,仅第一个被更改。我要两个容器都改变,而不仅仅是第一个。 谢谢! 问题答案: 我将 data-target 属性添加到a元素并更改第二个tab内容中的id 我修改了这行 您的: 我的更新: 第二个选项卡内容,您的: 我的更新:

  • 下面的示例有一个名为London的选项卡,其中有另一个名为Paris的选项卡。我怎么能在伦敦不结帐的情况下打开巴黎? 该示例直接来自W3SCHOOL,但经过了一些修改以适应我的用例。 null null 我相信问题是,“活跃”班从伦敦消失,因此,一旦我向巴黎施压,就会关闭。但我不擅长jQuery。 我想它可以很容易地在W3接口上测试:https://www.w3schools.com/howto/

  • 我有一个手风琴,这是工作绝对好,但我需要的是,只打开一个标签一次,这意味着当一个标签打开,然后另一个标签应该关闭。 目前,您可以看到,我们可以通过单击选项卡链接打开所有选项卡。 代码在这里 这里是小提琴

  • 我将PagerTabStrip与ViewPager一起使用: 似乎PagerTab的样式与您在操作栏中使用的选项卡小部件不同,因为选项卡位置不固定。有没有办法强制进行定位/样式? 我的寻呼机只有两个选项卡,并且没有同时显示两个选项卡看起来真的很愚蠢。 谢谢

  • 问题内容: 当我尝试在Project Properties中将项目构建目标更改为4.1 google API时,在logcat中收到这些错误。我试图修复项目属性并清理项目,但没有成功。有什么问题? 问题答案: 确保您仅使用的一个实例。我猜想您实例化了多个实例,结果Android抱怨了。 您也应该查看有关此主题的 博客文章 。