ASP.NET与Ajax的实现方式


  Ajax 应该不是一项技术,是一种 思维而已,跟 ASP.NET 以及其它 Web 开发语言没有什么太大关系,这里只不过谈谈 ASP.NET 中当前 使用的 Ajax 技术以及其它一些实现 Ajax 的优异框架 。

  Ajax 已经很 风行一阵子了,现在谈 Ajax 觉得有点老土 。当前所谓的 Web2.0 网站, 根本上没有不 使用 Ajax 的,就如 使用 RSS 一样,就如同一个标签,贴上去就成了 2.0 。Ajax 具体细节不谈,其 目标便是让消费者触发一些操作的时候,页面不会所有刷新,只刷新待更新的“ 部分页面”,加载数据的过程中,用 Loading 的图片来 示意正在加载数据, 不仅是看起来挺不错,也 普及了消费者的 拜访体验,有一种酷酷的觉得 。

  至于 ASP.NET 中用到的 Ajax ,我想大多数人 使用的是 Ajax.net / AjaxProfessional 或者 ASP.NET 2.0 中带有的 Atlas 框架 。由于都用过,我觉得这些都不是很好的 Ajax 解决 方案 。

  AjaxPro 用起来不是很容易,页面需求在 Page_Load 里面注册, 类似于

  以下是 引用片段:

  private void Page_Load(object sender, System.EventArgs e)

  {

  AjaxPro.Utility.RegisterTypeForAjax(typeof(DataAccess.MyAjax));

  }

  而且 ASPX 页面要包括一个 Runat=Server 的 标记,这样 Ajax.net 会将用到的一些通用函数以及你自定义的函数加载进来,假如没有 其实也 可以,手动增加就 可以了 。然而,在我以往做过的 利用中,时常出现的一些问题, 比方, 时常发现阅读器状态栏会有 js 脚本 舛误,而此时你所做的 Ajax 动机会所有失效,解决 步骤便是,把那个 Ajax.dll /AjaxPro.dll 给再一次 遮蔽一下就 可以了,问题的缘由 毕竟是什么,当前还不晓得 。

  至于 Atlas,我对它的觉得其实就跟对 DataGrid 的觉得一样,嗯,这种控件的好用是好用,很容易,然而,真正做一些 Web 利用的时候,你只能考量到性能以及分层等各种问题 。我想,在 比较正式的 Web 利用中,没几个人去用 DataGrid 去显示一些数据吧, 提议大家尽量少用这些控件 。另外便是,Atlas 的执行效率 确切不够 事实,向来在那里 Loading,等了好长期,居然出现什么脚本 舛误,汗 。

  那还有没有其它解决 方案吗?你 可以自己写些 Javascript 函数去实现 。不过,我这里推举用 jQuery 这个 Javascript 框架,从百度百科 引用一段对其的介绍:

  jQuery 是继 prototype 之后又一个优异的 Javascrīpt 框架 。其 主旨是——WRITE LESS,DO MORE,写更少的代码,做更多的 事件 。

  它是轻量级的 js 库(压缩后惟独21k) ,这是其它的 js 库所 不迭的,它兼容 CSS3,还兼容各种阅读器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+) 。

  jQuery 是一个 快捷的,简洁的 javaScript 库, 运消费者能更容易地 解决 HTML documents、events、实现动画 动机,而且容易地为网站提供 AJAX 交互 。

  jQuery 还有一个 比较大的优势是,它的文档 注明很全,而且各种 利用也说得很 详尽,同时还有许多成熟的插件可供 取舍 。

  jQuery 可以 运消费者的 html 页 维持代码和 html 内容 拆散,也便是说,不用再在 html 里面插入一堆js来调用命令了, 惟独定义 id 即可 。

  看来这段介绍你会晓得,Ajax 动机只不过 jQuery 的众多 性能的一种,普通来说,Web 利用中 使用 Ajax,必定也离不开 Javascript,而 jQuery 正是为大家封装了一些 JS 函数,使得你不在被 JS 的 纷纷复杂所 担心, 所有由 jQuery 帮你实现 。

  看一个小例子,就晓得用 jQuery 做 Ajax 着实是太容易了 。

   比方某个 ASPX 或者 HTML 页面里面有个 Button,点击触发 Ajax 加载数据,显示到 里面 。点击那个 Button 触发一个 JS 函数即可:

  以下是 引用片段:

  function GetNews()

  {

  $("#News").html("Loading News......");

  $.ajax({

  type:"post",

  url:"/ajax.aspx?act=getnews",

  dataType:"html",

  data:"",

  success:function(result)

  {

  $("#News").html(result);

  }

  });

  }

  这个函数就会先在那个 SPAN 里面显示“Loading News....”,通过异步调用, 拜访 /Ajax.aspx 这个页面,通过传递的 URL 参数 act=News 告诉页面需求什么类型的数据,你 可以依据不同的参数,将数据通过 Ajax.aspx 直接 Write 到页面上, 而后返回给上述 JS 函数,出现到页面上,就这样 容易搞定!

  固然,jQuery 里面并不是惟独这一种 Ajax 动机实现 模式,这里给出一些 jQuery 的资源,花上几个小时的 工夫学一下,很值得 。

   至于其它的 Javascript 优异框架有众多了, 比方 Yahoo! User Interface Library,Prototype,Rico,Qooxdoo,Dojo 等,另外还有 Ajax 方面一些资源 可以参考一下这里收集的资源 。