Ajax在应用程序框架中有一席之地么?
注:Firebug是firefox下的一个巨好的插件,Web开发工程师一定会深深喜欢这个插件的。
就目前来说,它有一下几个优点:方便的查看页面的源代码,绝对比你“右键点击页面->查看源代码”要有效率;
查看页面某一区块的样式表,比如说你可以看看某一块页面上的背景图在样式表中是如何定义的,Web开发的老手一定会了解这个操作在手工进行的时候是多么麻烦;
调试JavaScript
它是有害的么?现代Web开发的最基本的原则之一是表示层和逻辑层的分开,但是Ajax组件常常忽视了这个概念。尽管某些实现涉及到在控制器内的整个表单的创建,让我们假定看一个更智能的设计,像查看帮助(view helper)。
即使对于一个查看帮助的实现,你也将突然面临一个问题:除非代码在运行(类似于“编译”那一步)之前已经被准备好,你现在极有可能混合了JavaScript事件处理到你的HTML中了。有的人可能不会意识到这是一个问题。但是,正如服务器端的逻辑应该和视图(对于一个多层结构而言)分开一样,格式也应该与内容分开(例如CSS),程序动作在表示层中没有相应展现的地方。也就是说,JavaScript属于一个单独的包含文件。也就是我们通常称之为“无侵入性(unobtrusive)JavaScript”。
还有,Ajax组件在实际使用过程中还会阻挡那些不支持JavaScript的用户使用应用程序,这其中包括使用屏幕阅读软件的用户,还有大多数使用移动浏览器的用户等,对于一个公众站点来说,这部分用户加起来有5%左右。假若框架会产生不可访问的代码,这毫无疑问是个失败的框架。
结论
很明显,对我来说,假若程序代码不是在运行时之前就准备好,Ajax组件并没有带来实际的价值。即使是,带来的价值也非常有限。框架开发者应该让JavaScript库开发者来处理Ajax简化问题和专注于其他事情,而不是创建Ajax组件。JavaScript非常好而且它有自己的位置,但是不是在应用程序框架中。
尽管作者对Ajax在应用框架的位置的看法有些极端,或者说是偏激,不过也从一定程度上让我们看到,对于新的技术或者旧技术的新应用,我们要保持一个清醒客观的头脑,不能盲目的不加分析的开始投入其中,要看看自己的实际需求,再来决定是否采用该新技术。
0
相关文章