一个AJAX不是附加想法的网页框架
AJAX真让人头疼,因为它基本上意味着你得写两套差不多的代码:一套给能用JavaScript的浏览器,另一套给不能用的浏览器。
不仅如此,你还得把JavaScript事件连接起来,以便和你的数据模型互动,显示结果。
如果这些还不够麻烦的话,你还需要在请求中发送地址变化的信息,否则用户在点击“返回”时会出问题(如果你不明白,可以看看在GMail中点击链接时地址栏发生了什么)。
我们希望能找到一个在设计时就考虑到这些问题的解决方案。
性能和安全性也是非常重要的考虑因素。
我们也喜欢基于配置的系统,这样你就不需要写很多代码,只需把它放到一个容易理解的配置格式中。
这就像是在寻找圣杯,对吧?
4 个回答
解决这个问题一般有两种方法。第一种是让框架自己处理所有事情,比如微软的ASP.NET和它的Ajax工具包。这种方法包括一些服务器端的控件,可以自动生成Ajax功能的所有客户端和服务器端代码。例如,他们的UpdatePanel控件可以通过Ajax调用实现部分页面更新。不过,这种框架并不是特别受欢迎,因为它的页面和控件模型有时候被认为太复杂、太臃肿。
第二种更“轻便”的方法是将不同的任务分开处理。可以让jQuery或者类似的库来处理不同浏览器之间的不一致性和Ajax调用的客户端部分,然后使用一个简单轻量的服务器端网页框架,比如Groovy on Grails或者微软的ASP.NET MVC(还有其他的框架,大家肯定会提到)。任何一个不错的框架都应该能够轻松地生成JSON或XML格式的数据来响应Ajax调用。
至于那些禁用Javascript的浏览器——这是21世纪了,真的还需要考虑这些用户吗?
你有没有看过 Pyjamas?
以下是网站上的一段话:
我为什么要使用它?
你可以用 Python 这种易读的编程语言来写网页应用,而不是用 HTML 和 JavaScript。后者在写中等规模的应用时,代码会变得很难看懂。使用 Python,你可以把高层次的概念封装成类和模块,这样设计起来会更清晰,而不是把所有的 HTML 硬塞到一页里;你还可以重用和导入这些类和模块。
另外,AJAX 库会帮你处理所有浏览器之间的兼容性问题,这样你就可以专注于开发应用,而不用去学习那些“常见”的浏览器不兼容问题。
是的,NOLOH PHP框架(这个网站本身就是用NOLOH写的)就是那个理想中的解决方案。NOLOH是从零开始开发的,专门为了解决这些问题。你只需要在服务器端用一种语言进行开发,其他的事情它都会帮你处理。你不用担心AJAX或者不同浏览器之间的问题。NOLOH自2005年以来就已经存在,并且在许多大大小小的公司中得到了应用。由于它轻量级和按需处理的特性,NOLOH在性能上明显优于竞争对手。
NOLOH最近在Confoo大会上做了一个演讲,跟你问题最相关的部分是现场示例和基础编码。
如果你对NOLOH的强大功能感到好奇,还可以看看这个像史蒂夫·乔布斯一样的“还有一件事”,展示了即将推出的自动Comet。
免责声明:我是NOLOH的联合创始人。
希望你喜欢。