jQuery(或者可能是浏览器)是缓存ajax加载的脚本
我正在使用jQuery通过$.ajax()
调用加载一个视图页面。 我明确地将“cache”选项设置为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中有脚本标记。 例如:
现在 – 在响应文本中,这些看起来很正常。 但是,从FireBug看到的实际浏览器对这些脚本的请求包括查询字符串中的cache-breaker参数 。 他们看着像是:
http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.4&_=1264703589546
。
加载的html-css或images中的其他资源都不包含其请求中的缓存断开器。
到底是怎么回事? 如何关闭此缓存断路器?
我能够在我的测试服务器上复制你的问题。 然后我从jquery 1.3.2更改为1.4.1。 使用Jquery 1.4.1时,它不会添加缓存中断字符串。
当然,使用1.4.1可能不适合您。