Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)delvpublished in(发表于) 2014/1/6 9:10:44 在ASP.NET,Atlas中调用Web,Service—应用Cache减小服务器开销_[Asp.Net教程]
要启用Web Service的Cache,您只需要在WebMethod的声明中添加如下属性:
[WebMethod(CacheDuration = 5)]
其中CacheDuration的值代表Cache的时间,单位为秒。
但这种Cache的方法是Web Service提供的,Atlas对此一无所知,每次调用还是被发送给服务器。所以对于网络上延迟对用户的影响,这种Cache没有办法改善。
让我们通过一个示例程序进一步了解Web Service的Cache。
首先编写一个Web Service,返回当前时间,并指定CacheDuration为5秒:
[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]public class CachedWebService : System.Web.Services.WebService{[WebMethod(CacheDuration = 5)]public DateTime GetGurrentTime(){return DateTime.Now;}}
然后创建一个Atlas页面,添加ScriptManager并在其中引用这个Web Service:
再添加一些HTML标记用来调用这个Web Service并且显示结果:
onclick="return btnInvoke_onclick()" />
最后是JavaScript部分,这里我们将每一次调用的结果都显示到页面上,便于分析:
function btnInvoke_onclick() {CachedWebService.GetGurrentTime(onCompleted);}function onCompleted(result) {('result').innerHTML += result + "";}
下面在浏览器中测试一下,在多次点击按钮后,结果如下,可以看到Cache的作用:
同时,在Fiddler中可以看到,实际上这些请求还是被发送到了服务器,Cache只是服务器端的实现:
赞