论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

在ASP.NET Atlas中调用Web Service—应用Cache减小服务器开销

文章类别:Asp.net | 发表日期:2008-10-5 22:10:42

作者: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/")]
[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:

<atlas:ScriptManager runat="server" ID="scriptManager">
    <Services>
        <atlas:ServiceReference Path="CachedWebService.asmx" />
    </Services>
</atlas:ScriptManager>

再添加一些HTML标记用来调用这个Web Service并且显示结果:

<input id="btnInvoke" type="button" value="Invoke" onclick="return btnInvoke_onclick()" />
<div id="result">
</div>

最后是JavaScript部分,这里我们将每一次调用的结果都显示到页面上,便于分析:

function btnInvoke_onclick() {
    CachedWebService.GetGurrentTime(onCompleted);
}
function onCompleted(result) {
    $('result').innerHTML += result + "<br />";
}

 

下面在浏览器中测试一下,在多次点击按钮后,结果如下,可以看到Cache的作用:
 
同时,在Fiddler中可以看到,实际上这些请求还是被发送到了服务器,Cache只是服务器端的实现:


本示例的源代码可以在此下载:http://www.cnblogs.com/Files/dflying/CachedWebServiceDemo.zip

视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058