关于Ajax框架的构想

changhong94 2008-02-24 11:12:06
在文章栏目里贴上了我07年写的一篇文章《自制小型Ajax应用框架》作为我博客里的第一篇文章。记得当时才接触Ajax时,心里很激动,觉得这是一个伟大的变革:它可以让Web应用程序的使用感受变得和桌面应用程序一样。以后只要不设计到操作系统底层的应用,尤其是各种商务应用,全部可以用Web实现,而使用感受却不会受到页面的各种限制。

但几年看下来,Ajax发展情况跟我的想法却似乎有一些出入。以微软的Ajax框架Atlas为例,我的感受:这并不是一个真的Ajax应用。它将网页的一部分作为一个容器,当这个容器中的任何部分要进行更新,它就利用Ajax技术从后台将此容器更新了,达到了网页不用刷新的效果。

如果我们将整个网页都放在这个容器中,那么整个网页都不用刷新了。看似神奇吧?我却认为毫无意义,网络流量可一点都没减少,不刷新又有何用?

在此,我想用另一个语言例子来说明我的观点:Ajax到底是用来做什么的?我最开始编程的语言,是现在看起来很弱的vb6.0,但当时用来做各种商务应用的桌面程序,却也绰绰有余。Ajax应该是用类似vb6.0的方式来实现应用的。让我们来类比一下:

Vb6.0有丰富的显示控件,它们主要与当前程序中的内存打交道。Ajax也应该有丰富的显示控件,请注意,这些控件不是服务器端控件,应该是由Javascript构成,它们同页面中的各种数据打交道。
Vb6.0可以通过ADO等机制数据库交互,实现前台与后台的数据互联互通。Ajax也应该通过Ajax的数据传输机制与后台交互,只传送业务数据,不传显示数据,实现网络流量最小。

这样我的观点就比较清晰了:Ajax框架,应该由大量的Javascript控件组成,辅以与后台的联络机制。换个角度说,就是由浏览器提供显示,由Ajax提供数据。而我们在开发时,类似于开发分布式应用程序,前台提供代码智能环境编写Javascript,后台同样提供代码智能环境,如.net或Java。前台后台一定要分开,而不是像Atlas一样非要结合在一起,弄得好像Ajax就是用来玩不刷新页面的噱头的。

还看到过Google的Ajax框架,名叫GWT,思路跟微软的一样,就是在一个地方就把前台后台一起开发了。这种前后台合在一起的方式,必然要带来网络传输的低效。

文章《自制小型Ajax应用框架》,就颇有点这样的含义。但它主要以讲解Ajax实现技术为主。要真正实现我理想中的Ajax框架,工作量非常大,体现在要有丰富的显示控件;难度非常大,要实现前后台的有机整合。可惜,实现这样的框架,非我一人之力所能及。即使是公司化运作,风险也相当之高。

那现有技术可否支持我的设想呢?在一定程度上已经有了。虽然微软的Atlas思路不对,但刚出来的Visual Studio 2008,实现了Javascript开发时的代码智能。由于我没有使用过,还不知道它对开发Ajax到底影响如何。不过在这方面,看来微软又走到了前面。开发环境算是有的,可能还缺乏的,算是大量规范化的标准化的纯Javascript控件。

您的想法如何呢?希望大家能探讨一下。
...全文
77 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧