JJJ*_*JJJ 10 .net asp.net web-services
在我的ASP.NET应用程序中,我注意到任何Web服务调用的结果都被缓存.我不希望缓存任何结果,如何阻止浏览器缓存结果?
更新:
这是通过调用附加'/ js'的Web服务URL生成的代理代码,例如/mywebservice.asmx/js
var MyWebService=function() {
MyWebService.initializeBase(this);
this._timeout = 0;
this._userContext = null;
this._succeeded = null;
this._failed = null;
}
MyWebService.prototype={
SomeWebMethod:function(itemID,succeededCallback, failedCallback, userContext) {
return this._invoke(MyWebService.get_path(), 'SomeWebMethod',false,
{itemID:itemID},succeededCallback,failedCallback,userContext); }}
MyWebService.registerClass('MyWebService',Sys.Net.WebServiceProxy);
MyWebService._staticInstance = new MyWebService();
MyWebService.set_path = function(value) { MyWebService._staticInstance._path = value; }
MyWebService.get_path = function() { return MyWebService._staticInstance._path; }
MyWebService.set_timeout = function(value) { MyWebService._staticInstance._timeout = value; }
MyWebService.get_timeout = function() { return MyWebService._staticInstance._timeout; }
MyWebService.set_defaultUserContext = function(value) { MyWebService._staticInstance._userContext = value; }
MyWebService.get_defaultUserContext = function() { return MyWebService._staticInstance._userContext; }
MyWebService.set_defaultSucceededCallback = function(value) { MyWebService._staticInstance._succeeded = value; }
MyWebService.get_defaultSucceededCallback = function() { return MyWebService._staticInstance._succeeded; }
MyWebService.set_defaultFailedCallback = function(value) { MyWebService._staticInstance._failed = value; }
MyWebService.get_defaultFailedCallback = function() { return MyWebService._staticInstance._failed; }
MyWebService.set_path("/MyWebService.asmx");
MyWebService.SomeWebMethod= function(itemID,onSuccess,onFailed,userContext)
{MyWebService._staticInstance.SomeWebMethod(itemID,onSuccess,onFailed,userContext); }
Run Code Online (Sandbox Code Playgroud)
我用以下方法调用该服务:
MyWebService.SomeWebMethod(
itemID,
function(sender, e)
{
// do something
},
function(sender, e)
{
// handle failure
});
Run Code Online (Sandbox Code Playgroud)
我使用建议的技术(将一个param附加到具有一些随机值的URL)与其他页面以防止它们被缓存,但我很惊讶我需要将此技术用于Web服务调用,因为它们是POST调用默认情况下,在ASP.NET 2.0中,不应该首先缓存.
当您向 Web 服务发出请求时,将唯一值附加到查询字符串,例如转换为数值的当前日期和时间,这将确保每次都将其视为唯一请求,并且不会缓存响应地方。
具体来说是 JavaScript Date.getTime()方法:
var d = new Date();
var uniqueValue = d.getTicks();
// Now append uniqueValue to the querystring you're calling the webservice with
// and it'll ensure the request is treated as unique by the browsers cache
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6773 次 |
| 最近记录: |