2011-11-11 31 views
0

我有一个web部件在一个sharepoint页面中,向服务器请求数据。要做到这一点我想提出一个Ajax请求在我的代码类似以下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()功能

当我停靠的GetPeriod()功能点n°3即使这些数据正确保存在数据库中,我也无法看到更新的数据!

起初我还以为是同步的问题,所以我已经添加了async: false PARAM但它did'nt解决问题。 现在我想这是一个缓存问题(因为数据已被正确保存到数据库),所以我尝试了cache: false param,但这些解决方案都不适用于我。

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

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

任何帮助吗?

+0

这是在所有浏览器中发生的吗?或只是ie? – Patricia

+0

@Patricia:我只是想与IE8/9因为共享点:)当然, – Lorenzo

+0

没错。在过去,我遇到了一个与cache:false选项有关的问题。我会把我如何解决它的答案。 – Patricia

回答

0

我以前碰到过这个。并解决它通过把:

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

我不知道为什么缓存选项为您的$阿贾克斯的部分不工作,但这可能。

+0

谢谢帕特丽夏。我只是这样做,但没有... :( – Lorenzo

+0

该参数是不是坚持到您的请求的结束? – Patricia