当前位置:  开发笔记 > 后端 > 正文

IE8的意外缓存导致IE8

如何解决《IE8的意外缓存导致IE8》经验,为你挑选了2个好方法。

我在使用JQuery Ajax请求的Internet Explorer缓存结果时遇到了严重问题.

我的网页上有标题,每次用户导航到新页面时都会更新.页面加载后,我这样做

$.get("/game/getpuzzleinfo", null, function(data, status) {
    var content = "

Wikipedia Maze

"; content += "

Looking for " + data.EndTopic + "

"; content += "

Step " + data.StepCount + "

"; content += "

Level " + data.PuzzleLevel.toString() + "

"; content += "

Start Over

"; $("#wikiheader").append(content); }, "json");

它只是将页眉信息注入页面.您可以访问www.wikipediamaze.com查看,然后登录并开始新的拼图.

在每一个浏览器我测试过(谷歌Chrome,火狐,Safari,IE浏览器),它的伟大工程,除了在IE中.Eveything 第一次在IE中注入就好了,但在此之后它甚至从未打过电话/game/getpuzzleinfo.这就像是缓存了结果或其他东西.

如果我改变对$.post("/game/getpuzzleinfo", ...IE 的调用就可以了.但随后Firefox退出了工作.

有人可以就此解释为什么IE缓存我的$.getajax调用吗?

UPDATE

根据下面的建议,我已将我的ajax请求更改为此,这解决了我的问题:

$.ajax({
    type: "GET",
    url: "/game/getpuzzleinfo",
    dataType: "json",
    cache: false,
    success: function(data) { ... }
});

NickFitz.. 176

IE因其对Ajax响应的积极缓存而臭名昭着.当您使用jQuery时,您可以设置一个全局选项:

$.ajaxSetup({
    cache: false
});

这将导致jQuery向请求查询字符串添加随机值,从而阻止IE缓存响应.

请注意,如果您正在进行其他需要缓存的Ajax调用,那么这也会禁用它.在这种情况下,切换到使用$ .ajax()方法并为必要的请求显式启用该选项.

有关详细信息,请参阅http://docs.jquery.com/Ajax/jQuery.ajaxSetup.



1> NickFitz..:

IE因其对Ajax响应的积极缓存而臭名昭着.当您使用jQuery时,您可以设置一个全局选项:

$.ajaxSetup({
    cache: false
});

这将导致jQuery向请求查询字符串添加随机值,从而阻止IE缓存响应.

请注意,如果您正在进行其他需要缓存的Ajax调用,那么这也会禁用它.在这种情况下,切换到使用$ .ajax()方法并为必要的请求显式启用该选项.

有关详细信息,请参阅http://docs.jquery.com/Ajax/jQuery.ajaxSetup.


@Eric:这就是jQuery在内部所做的事情 - "cache:false"选项只是告诉它这样做.

2> Tom..:

正如marr75所提到的,GET是缓存的.

有几种方法可以解决这个问题.除了修改响应头之外,您还可以将随机生成的查询字符串变量附加到目标URL的末尾.这样,IE每次请求时都会认为它是一个不同的URL.

有多种方法可以做到这一点(例如使用Math.random(),日期的变化等).

这是你可以做到的一种方式:

var oDate = new Date();
var sURL = "/game/getpuzzleinfo?randomSeed=" + oDate.getMilliseconds();
$.get(sURL, null, function(data, status) {
    // your work
});

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有