Single Page Application (单页应用) 适合你吗?AJAX不是万能的
2009-10-28 15:48
246 查看
公司的新项目开始了,项目的前端部分由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技术发展的更快些吧!
由于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技术发展的更快些吧!
相关文章推荐
- 【大拿分享】单页应用(Single Page Application)的搜索引擎优化
- 使用 AngularJS 的路由和模板实现单页应用 (Single Page)
- vuejs 无node单页应用方案一(vuejs without node signel page application)
- 使用 AngularJS 的路由和模板实现单页应用 (Single Page)
- 使用 AngularJS 的路由和模板实现单页应用 (Single Page)
- 将网站打造成单页面应用SPA(Single Page Application)
- Ajax应用场景-Ajax适合的应用场合
- ASP.NET AJAX 的 UpdatePanel 控件不是万能的
- Single Page Application - 下一代的Web应用程序
- 使用QtSingleApplication,实现应用只启动一个实例
- Ajax应用场景-Ajax适合的应用场合
- Knockout学习之Single Page Application
- Single Page Application概览
- ASP.NET Single Page Application (SPA) and template libraries
- 海洋工作室——网站建设专家:【原】在线订餐系统,可商业化!订单系统共享啦!!应用技术: AJAX, LINQ, MASTERPAGE, ASP.NET
- Singal Page App:使用Knockout和RequireJS创建高度模块化的单页应用引擎
- Single View Application应用剖析
- Singal Page App:使用Knockout和RequireJS创建高度模块化的单页应用引擎
- Application不是适合使用 JUnit测试
- 这两天研究了一下AJAX的应用,明白了点和自己的体会,绝对适合初学者