jQuery(或者可能是浏览器)是缓存ajax加载的脚本

时间:2010-01-28 18:39:18

标签: asp.net jquery asp.net-mvc ajax caching

我正在使用jQuery通过$.ajax()调用加载一个视图页面。我明确地将“缓存”选项设置为true。在应用程序中没有任何地方我们使用$.ajaxSetup()来指定其他方式。

这是ajax请求设置:

$(".viewDialogLink").click(function() {
    $.ajax({
        url: $(this).attr("href"),
        dataType: "html",
        type: "GET",
        cache: true,
        success: function(data) { $("#dlgViews").html(data).dialog("open"); }
    });
    return false;
});

响应成功回复。对话框打开,显示一些内容。

无论其

返回的html中有脚本标记。例如:

<script type="text/javascript" src="http://../jsapi/arcgis/?v=1.4"></script>

现在 - 在响应文本中,这些看起来很正常。但是,从FireBug,看到的实际浏览器对这些脚本的请求包括查询字符串中的cache-breaker参数。他们看起来像:

http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.4&_=1264703589546

加载的html-css或图像中没有其他资源 - 在请求中包含缓存断开器。

发生了什么事?如何关闭此缓存断路器?

1 个答案:

答案 0 :(得分:3)

我能够在我的测试服务器上复制您的问题。然后我从jquery 1.3.2更改为1.4.1。使用Jquery 1.4.1时,它不会添加缓存中断字符串。

 <script type="text/javascript" src="jquery-1.4.1.min.js"></script>

当然,使用1.4.1可能不适合你。