作者:Dflying Chen (http://dflying.cnblogs.com/) 对于一些复杂的,需要较长时间完成,并且对实时性要求不是很高的服务,选择Cache往往是一个有效的提高效率的方法。.NET的Web Service实现充分考虑了对Cache的需求,您只需要简单的设定即可启用Cache。Atlas中对Web Service的调用也可以利用这一Cache机制,以减少服务器端不必要的开销。 要启用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/“)] <atlas:ScriptManager runat=”server” ID=”scriptManager”> 再添加一些HTML标记用来调用这个Web Service并且显示结果: <input id=”btnInvoke” type=”button” value=”Invoke” onclick=”return btnInvoke_onclick()” /> 最后是JavaScript部分,这里我们将每一次调用的结果都显示到页面上,便于分析: function btnInvoke_onclick() { 下面在浏览器中测试一下,在多次点击按钮后,结果如下,可以看到Cache的作用:
[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:
<Services>
<atlas:ServiceReference Path=”CachedWebService.asmx” />
</Services>
</atlas:ScriptManager>
<div id=”result”>
</div>
CachedWebService.GetGurrentTime(onCompleted);
}
function onCompleted(result) {
$(result).innerHTML += result + “<br />”;
}
同时,在Fiddler中可以看到,实际上这些请求还是被发送到了服务器,Cache只是服务器端的实现:
本示例的源代码可以在此下载:http://www.cnblogs.com/Files/dflying/CachedWebServiceDemo.zip
在asp.net atlas中调用web service—应用cache减小服务器开销_asp.net技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 在asp.net atlas中调用web service—应用cache减小服务器开销_asp.net技巧
相关推荐
-      对.net framework 反射的反思_asp.net技巧
-      .net3.5和vs2008中的asp.net ajax_asp.net技巧
-      使用asp.net ajax框架扩展html map控件_asp.net技巧
-      asp.net应用程序资源访问安全模型_asp.net技巧
-      photoshop初学者轻松绘制螺旋漩涡特效_photoshop教程
-      photoshop通道结合图层模式抠狗尾巴草_photoshop教程
-      web.config详解+asp.net优化_asp.net技巧
-      asp.net中多彩下拉框的实现_asp.net技巧