使用ASP.NET Futures开发以客户端为中心的Ajax应用

http://tech.ddvip.com   2007年09月01日    社区交流

内容摘要:我们都知道Ajax无非就是使用XMLHttpRequest对象发送请求给服务器,然后使用返回的数据更新页面上的内容。在这里,我们所能够发送和接收的数据其实都是纯文本的,因此我们能够做出的选择就是以什么样的格式去发送与接收数据。

  在已有的服务器端逻辑基础上,如何尽量少作出改动就能实现Ajax?可能很多人都能想到同样的结果,就是将原本整页输出的HTML改为仅仅输出内容更新过的一个局部,使用XHR获取这个局部HTML然后更新到页面上。这正是ASP.NET AJAX中的UpdatePanel控件所做的事情。因此XHR接收的是即将现实的HTML内容,因此被称之为以内容为中心的Ajax。

  以脚本为中心

  如果你觉得发送HTML到客户端,然后还要使用JavaScript才能更新到页面上,这还是麻烦,干脆把更新用的JavaScript也嵌入在发送的内容中就好了,也就是所谓的以脚本为中心的Ajax。脚本被XHR接收至客户端后,直接使用eval()执行,无需任何复杂的客户端逻辑。这种实现方式在ASP.NET AJAX/Futures中暂时没有直接的支持,因此也较少人使用。

  以数据为中心

   与以脚本为中心相反的做法就是,服务器端连HTML也不生成了,直接将数据发送至客户端,让客户端承担数据处理并生成对应HTML的工作。由于传输的是纯粹的数据,因此这被称之为以数据为中心的Ajax。

   说到传输数据,我们面临的选择是数据格式,例如XML与JSON。XML固然好,因为.NET内置了众多的XML支持,并且.NET Web Service本身也就是使用XML的。然而客户端解释XML是一件很麻烦的事情,浏览器的DOM API提供的操作都非常有限,开发复杂应用时客户端解释XML所需的代码将变得非常繁多。

  对于客户端来说,JSON则要有好得多,只需要放进eval()函数里,出来的便是解释好的JavaScript对象。同时,ASP.NET AJAX已经为.NET Web Service引入了JSON支持,因此在.NET作为服务器端框架的前提下JSON比XML更具优势。

  2 使用ASP.NET Futures开发以客户端为中心的Ajax应用

   在使用ASP.NET Futures开发之前,我们首先要知道它是怎么工作的,以及它为我们提供了哪些基础部件以便于我们的开发。

来源:IT168    作者:陈广琛    责编:豆豆技术应用

正在加载评论...