公司的新项目开始了,项目的前端部分由WebWork转向了GWT, 所以这些天一直在看GWT的东西,结合之前用过的JQuery和Prototype, 有一些想法记录下来放到blog上。
由于AJAX的局部刷新功能,很多系统都变成了Single Page Application, 也就是应用只有一个页面,根据不同的用户操作来更新这个页面的内容,虽然这种做法“简化”了系统UI部分的开发 (真的简化了吗?或许只是心理上的简化)而且使系统开发跟上了Web开发的AJAX潮流,但是这种一刀切的单页模式真的适合你的应用吗?不妨从下面几个方面来考虑一下
1. 你的应用需要被搜索引擎索引吗? 据我所知,目前所有的搜索引擎还是比较讨厌javascript的,也就是说你页面里面用ajax更新的动态内容搜索引擎是不能访问到的。所以如果你的网站需要依靠搜索引擎进行推广,还是传统一点比较好。
2. 你的应用需要浏览器的后退按钮吗?几乎所有的浏览器用户每天都在频繁的使用浏览器的后退按钮来查看自己刚刚浏览过的内容,但是如果你使用了AJAX进行局部刷新,浏览过的内容就不能用后退按钮重现了。目前我所知道的只有GWT使用了iframe的方法实现了后退按钮的功能:
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>,不过没有研究它的具体解决方法。
3. 你的应用想要用户收藏某个页面吗?AJAX单页应用的特点就是地址栏的url跟浏览器显示内容不是一一对应的关系,所以用户收藏的页面重新打开的时候显示的内容跟收藏时的内容可能是不一样的。
4. 你的应用页面很复杂吗?需要用ajax进行复杂页面的更新吗? ajax是使用xml, text等文本与服务端进行交互的,大量的传输不但影响系统的性能,对系统安全是也很大的威胁。
5. 还有一个以前遇到的问题就是IE的cache问题,当时解决的方法就是在每次发送ajax请求的时候都在url后带一个一个随机的参数,不知道现在解决了没有,要不然也是要考虑的一个问题。
以上想到的这几个方面可能已经有了解决方案,发展的问题还是要靠发展来解决,希望AJAX技术发展的更快些吧!