频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用ASP.NET AJAX访问Script Method时启用客户端缓存

来源:博客园 作者:赵劼 出处:巧巧读书 2008-04-02 进入讨论组
下一页 1 2 3 4 

【引自赵劼的博客】背景
缓存是开发高性能和高可用性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时启用客户端缓存(图一)
图1

服务器端缓存

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

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

更多文章 更多内容请看Ajax技术专题.NET移动与嵌入式技术.NET开发手册专题,或进入讨论组讨论。
下一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章