当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: borderC
 

 

 ·atlas 实现机制浅析(二)(1)    »显示摘要«
    摘要:updatepanel 与局部重绘模式 (partial rendering mode) 在上一节介绍 altas 整体结构时曾经提到,可以在启用局部重绘模式的情况下,通过通过 <altas:updatepanel .../> 标签定义需要异步更新的范围。 我们知道,传统的 http 协议应用场景中,客户端在用户点击 submit 提交 form 的时候,一个 get/post 请求被发送到后台服务器;服务器则根据 form 的 acti......
 ·asp.net的atlas概述    »显示摘要«
    摘要:入门 开发人员一直用有限的html控件和复杂的javascript脚本进行着浏览器兼容的工作。在很多案例中,动态服务器页面技术牺牲了丰富的用户体验来实现浏览器的兼容性。 在最近几年,开发者在尝试建立浏览器客户端应用程序的可能性有了很多的进展。现在所有通用的浏览器都支持可编程的dom(document object model )。在这些浏览器的最新版本中,已经加入了客户端和服务器直接通讯的能力,而不需要全部返回整个页面的数据。从而产生了microso......


解析Atlas服务器端支持(上)(1)

在上一篇文章里(解析atlas客户端支持),我们分析讨论了使用atlas在进行ajax访问web services所用的客户端代码。但是如果要实现这一功能,很显然还离不开服务器端的支持。在这篇文章里,我们就来讨论这一点。

增加服务器端的支持其实就是添加/改变处理一个http request的方式。在asp.net中,是通过一个实现了system.web.ihttphandler接口的类来处理request。我们可以在web.config里通过配置将request与实现ihttphandler的类进行映射,以此告诉asp.net这个request该由谁来处理。例如,在atlas中,对于culture的支持文件atlasglob.axd,就把该文件请求交由microsoft.web.globalization.globalizationhandler类来处理。

【相关文章:东方卫士网络版-网管系统技术评测

<httphandlers> 【扩展阅读:Websense近日推出了网上安全平台方

【扩展信息:BOCO.SFW-2000A亿阳网警防火

<add verb="*" path="atlasglob.axd" type="microsoft.web.globalization.globalizationhandler" validate="false"/>

</httphandlers>

但是如果需要对于一个请求,使用不同的ihttphandler来处理呢?甚者,如果需要对于已有一个请求的处理方式进行扩展呢?asp.net也考虑到了这一点,只需要将一个请求交给一个实现了system.web.ihttphandlerfactory接口的类即可。该类的功能就是根据该request的一些“特点”,创建一个ihttphandler实例。该类也提供了释放hanlder的方法,提供了对于handler实例复用的可能,减少由于构造与初始化对象的消耗,自然也减轻了gc的负担。

在atlas中就利用了这一点,改变了对于*.asmx请求的处理方式,对于在query string中有mn的请求需要作特别的处理(在以后的文章中我会提到,对于“*.asmx/js”的请求,也会有另一种处理。它提供了客户端访问web services的代理,这超出了本篇文章的范围)。于是,如果需要使用atlas从客户端以ajax方式访问web services,则在web.config里下面的设置绝对不可少:

<httphandlers>

<remove verb="*" path="*.asmx"/>

<add verb="*" path="*.asmx" type="microsoft.web.services.scripthandlerfactory" validate="false"/>

</httphandlers>

这个设置删除了原有*.asmx文件请求的映射,将*.asmx文件的请求交由microsoft.web.services.scripthandlerfactory处理。这就是atlas在服务器端的支持。

接下来就要开始分析atlas提供的microsoft.web.atlas.dll里的代码了。这个程序集里的代码量与复杂程度均大大超过atlas的客户端代码。因此,我只对于起关键作用的代码进行详细分析,一些辅助的方法或类的实现,只能请感兴趣的朋友们自行查看了。另外,为了大家阅读方便,我将局部变量名都改成了可读性比较高的名称,避免了“text1”,“flag1”之类的变量名,希望对大家阅读代码有所帮助。


...   下一页
 ·.net环境下基于ajax的mvc方案(1)    »显示摘要«
    摘要:1、问题背景 现在,越来越多人开始尝试基于ajax进行无刷新的web开发,不过,在.net环境下,应用ajax并不是非常方便,这主要可能是由以下一些原因造成的: •由于ajax基于javascript的本质,使得开发者必须对javascript非常了解,起码,其javascript能力足以实现对callback返回内容对页面的更新,所以开发的门槛就有一定程度的上升 •当基于ajax机制进行开发时,原有的基于postback方式......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE