【发布时间】:2011-01-18 10:48:56
【问题描述】:
我有一个通过 ScriptManager 控件使用的 WCF 服务:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="/service/client.svc" />
</Services>
</asp:ScriptManager>
为了在这个服务中调用方法,我使用了一些 javascript/jQuery:
$().ready(function () {
RefreshClient();
});
function PlaceBid() {
var client = new theClient();
client.DoSomething(1, 1000, 2000, 50, 5000, 1000, UpdateResult, null, null);
}
function UpdateResult(data){
// logic and more jQuery to update controls on page
// e.g. $('#status').html('<div class="something">' + data.msg + '</div>');
}
在我的 Client.svc 服务中,我对数据库进行了一些调用,然后根据数据库值返回结果。
在 Chrome、FF、Opera 中一切正常。但是,IE8/7 中出现了一些问题,由于某种奇怪的原因导致脚本无法运行。
如果我调试项目并逐步通过 IE 工作正常,并且当我使用更改更新数据库时,这些更改会被拉出,并且页面上的控件(例如简单的 )会相应地更新。一旦我停止调试,IE 页面就会停止工作。
好像 IE 正在缓存 client.DoSomething 函数,所以每次总是返回原始值而不是新值。
有什么想法吗?
【问题讨论】:
-
hmm 似乎是在缓存结果,但仅在 IE 中。我添加了以下行:WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control", "no-cache") 以阻止该方法缓存结果,现在一切似乎都运行良好,尽管我点击了“ Ajax 客户端框架加载失败”错误!
标签: asp.net wcf scriptmanager