Ajax缓存问题?或者是其他东西?

时间:2011-11-11 16:24:10

标签: sql-server caching jquery sharepoint-2010

我在sharepoint页面中有一个Web部件,要求服务器提供数据。为此,我在我的代码中发出一个ajax请求,如下所示

function GetPeriod() {
    var period;
    $.ajax({
        url: GetBaseWSUrl() + 'MyWebService.asmx/GetPeriod',
        type: "post",
        dataType: "json",
        data: JSON.stringify({}),
        contentType: "application/json; charset=utf-8",
        async: false,
        success: function (data) {
            period = data.d;
        }
    });
    return period;
}

在Web服务MyWebService.asmx内部,我使用方法GetPeriod(),然后查询数据库中的数据并将此数据作为JSON对象返回。

我在一段代码中遇到问题,它执行以下操作:

  1. 首先,代码调用GetPeriod()函数
  2. 然后,用户可以更改某些数据并将更改提交给服务器
  3. 最后,代码再次调用GetPeriod()函数
  4. 当我在n°3点调用GetPeriod()函数时,即使这些数据在数据库中正确保存,我也无法看到更新的数据!

    起初我认为是同步问题,所以我添加了async: false param,但它没有解决问题。 现在我认为这是一个缓存问题(因为数据已经正确保存到数据库中)所以我尝试使用cache: false参数,但这些解决方案都不适用于我。

    我还尝试将数据库置于分析之下,即使我可以看到客户端发出http请求的时间与执行查询的时间之间存在差异,我也可以看到有效请求被调用在数据库上。

    我完全迷失了这个......

    有帮助吗?

1 个答案:

答案 0 :(得分:0)

我之前遇到过这种情况。并通过以下方式解决它:

$.ajaxSetup({
    // Disable caching of AJAX responses */
    cache: false
});

我不知道为什么作为$ .ajax一部分的缓存选项不起作用,但这可能会。