在浏览器中强制缓存刷新

时间:2010-01-12 20:32:22

标签: jquery browser caching

我刚刚对使用asp.net的网站进行了大量更新。在新的更新中,我更改了很多代码,以便我使用jquery代替asp.net web服务。我的许多用户都遇到问题,新的更新在他们浏览浏览器中的所有缓存之前都不起作用。因为告诉每个人刷新缓存需要做很多工作,也许我可以在加载新更新时强制刷新?

用户遇到问题的典型ajax调用是:

$.ajax({
    type: "GET",
    url: url,
    dataType: "json", cache: false, data: "{}", contentType: "application/json; charset=utf-8"....

在服务器计算机上,我记录错误,它看起来像这样:

Error Message: There was no channel actively listening at 'http://www.domain.com/Service.svc/get?date=2010-01-12&_=1263327373122&{}'. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening.

“_ = 1263327373122”部分根本不应该存在。当用户刷新缓存时,它再次完美。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果您不想发送任何数据,只需省略data参数或将其更改为data: {}(不带引号)。它认为您要发送字符串"{}"

发送参数_是因为您指定了cache: false

此外,我认为您不应该自己使用参数“构建”URL并传递空数据对象。 jQuery为你做到了。

即。而不是

$.ajax({
    type: "GET",
    url: "http://mydomain/service?date=" + mydate,
    data: {} });

这样做

$.ajax({
    type: "GET",
    url: "http://mydomain/service", //this remains constant
    data: {date: mydate} });