网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

使用ASP.NET AJAX启用客户端缓存

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12

    背景
    缓存是开发高性能和高可用性Web应用的重要手段之一。作为ASP.NET AJAX的关键功能,从客户端访问Script Method会被大量用于使用ASP.NET开发的AJAX应用。以下是这一功能最简单的例子。


  <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug">
   <Services>
   <asp:ServiceReference Path="CacheService.asmx" />
   </Services>
  </asp:ScriptManager>
  
  <script language="javascript" type="text/javascript">
   var count = 0;
  
   function getServerTime()
   {
   window.count ++;
   CacheService.GetServerTime(onSucceeded);
   }
  
   function onSucceeded(result)
   {
   Sys.Debug.trace(result.format("HH:mm:ss"));
  
   if (count < 6)
   {
   window.setTimeout(getServerTime, 3000);
   }
   else
   {
   window.count = 0;
   }
   }
  </script>
  
  <input type="button" value="GetCurrentTime" onclick="getServerTime()" />
  <br /><br />
  
  <textarea cols="20" rows="10" id="TraceConsole"></textarea> 

 
    页面上有一个ScriptManager控件,其ScriptMode属性被设为Debug,这样我们就可以使用Sys.Debug.trace方法向ID为TraceConsole的TextArea元素中添加文本了。当点击页面上的按钮时,我们会连续访问6次端的方法以获得端的时间,每两次请求之间将会有一个3秒的间隔。服务器端的方法定义如下:

  [ScriptService]
  public class CacheService : System.Web.Services.WebService
  {
   [WebMethod]
   public DateTime GetServerTime()
   {
   return DateTime.Now;
   }
  } 

 
    打开页面,点击按钮,我们可以在页面中看到如下的结果:
  


  服务器端缓存

    在ASP.NET AJAX中访问Script Method的功能有一个内置的服务器端缓存能力,但是似乎很少有人用到它——它的确有一定的局限性。大部分的开发人员都会将数据存放到HttpContext.Cache对象或者其他一些地方,然后在需要时从缓存中重新获取对象。这是开发ASP.NET应用时最常用的缓存方式之一,但是我们有时可以用一种更加方便,更加有效的方法。请看下面的代码是如何打开这个功能的。


  [WebMethod(CacheDuration=10)]
  public DateTime GetServerTime()
  {
   return DateTime.Now;
  } 

    就像使用ASP.NET开发Web Services一样,我们可以使用相同的方法来让ASP.NET为相同资源并且有相同参数的请求缓存输出,而我们只需要设置WebMethodAttribute的CacheDuration属性即可。在上面的代码片断中,方法的结果会被调用10秒钟。我们可以从System.Web.Extenssions.dll中System.Web.Script.Services.RestHandler类的InitializeCachePolicy静态方法中得知到底发生了什么事情:

  • 上一篇资讯: 如何实现站点的RSS输出
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号