关于Ajax框架的选择

      最近很多朋友在项目中使用Ajax,也问我关于Java的Web项目如何选择Ajax框架的问题。关于Ajax框架的选择问题,我说说我的看法。

      大家使用Ajax框架主要是需要一些特定的效果,比如异步的表单提交,页面的局部刷新等。这些简单的功能使用Ajax都能非常方便的解决。拿笔者使用过的一些Ajax框架为例,完成这些简单的功能都非常容易。下面我简单介绍一些常见的Ajax框架的特点:

  1. prototype:prototype实际上是一个非常小巧的JavaScript基础库,并且在这个库中封装了Ajax功能。这个框架笔者认为适合对于Ajax需求比较少的项目。比如笔者的一个项目中只需要一个简单的联动菜单,那么使用prototype就比较合适,小巧而且简单是prototype的最大特色。prototype的一个缺点就是使用$函数来操作文档元素,如果在PHP中使用就热闹了,页面中满目都是$符,非常“壮观”,页面的可读性较差。
  2. jQuery:它是轻量级的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即可。笔者建议大多数使用服务器端框架的项目可以使用jQuery作为Ajax框架。其功能强大,大小适度,兼容性做的非常出色。
  3. DWR:DWR实际上是一个RPC。通过DWR提供的DWRServlet可以达到用JavaScript直接调用服务器端的Java代码的效果。这个对于交互比较多的Web应用程序比较适合。项目可以省略Web层,直接把逻辑层的代码暴露给客户端的JavaScript脚本。DWR可以非常高效的与其它的Ajax框架进行整合,比如jQuery。
  4. ExtJS:ExtJS是一个非常庞大的JavaScript库。其有自己的表现风格和常用的组件,如Tree、Menu、Toolbar等。适合于那些没有“审美能力”的人做Web应用。可以把它与DWR或者Struts2完美结合。ExtJS框架的主要问题是比较大,学习的成本比较高。现在还没有一款非常好的开发工具,初学者掌握的难度较大。
  5. Dojo:Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)),这也是为什么叫它a unified toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些、长期存在 、历史问题,以及DHTML 跨浏览器问题。
      Dojo能够让你更容易使Web页面具有动态能力,或者在任何能够稳定支持JavaScript语言的环境中发挥作用。
      Dojo有以下的特征:
    •   利用Dojo提供的组件,你可以提升你的web应用程序可用性、交互能力以及功能上的提高。
    •   也可以更容易的建立互动的用户界面。同时Dojo提供小巧的动态处理工具。
    •   利用它的低级API和可兼容的代码,能够写出轻便的、单一风格(复杂)的JavaScript代码。Dojo的事件系统、I/O的API以及通用语言形式是基于一个强大编程环境。
    •   通过Dojo提供的工具,你可以为你的代码写命令行式的单元测试代码。
    •   Dojo的扩展包能够使你自己的代码更容易维护,耦合性更低。
    Dojo库的最大问题是文档,没有很好的参考资料可以使用。这点上不如ExtJS。

      总结以上笔者用过的Ajax框架,如果项目不是全部使用异步功能,可以考虑使用prototype或者jQuery。如果全部使用异步功能,可以考虑DWR。只有页面上也都用现成的组件库时再考虑ExtJS和Dojo。

你可能感兴趣的:(jquery,框架,Ajax,DWR,dojo)