AJAX相关知识
2010-12-05 19:22 小郝(Kaibo Hao) 阅读(259) 评论(0) 编辑 收藏 举报
- 定义:
Ajax (pronounced /ˈeɪdʒæks/; shorthand for Asynchronous JavaScript and XML)[1] is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.
- 知识背景:
HTML、CSS、JAVASCRIPT、 一种WEB服务端技术(JAVA/.NET/PHP/...)
在AJAX中各技术点之间的关联
动态布局展示及与数据交互:the Document Object Model (DOM)
数据交换载体及数据展现的控制: XML、 XSLT 、 JavaScript Object Notation (JSON)
异步交互:the XMLHttpRequest object
将所有上述技术整合到一起: JavaScript / VBScript
- 历史:
1990s 年代同步操作,加载需刷新整体界面,并包括布局、数据、样式
1995 Java applets 引入浏览器,可以通过编译过的代码通过JVM异步获取服务端数据
1996 Iframe 引入IE
1999 XMLHTTP ActiveX control 引入 Internet Explorer 5
1999+ Mozilla, Safari, Opera 等添加了 XMLHttpRequest JavaScript object支持
IE7版本也引入native XMLHttpRequest model
Outlook Web Access (2000)[6]
Oddpost (2002)
Gmail (2004)
Google Maps (2005)
April 5, 2006 the World Wide Web Consortium (W3C) 发布XMLHttpRequest object 相关标准
- 优点
- 异步操作,按需请求,节省流量
- 用户体验较同步方式好
- 缺点
- 由于异步操作没有在浏览器的history中进行注册,所以当用户点击浏览器的后退/返回按钮时就会返回到上一个浏览过的页面,而不是一个ajax请求的回退(解决方案:用不可见的Iframe触发浏览器的history的变化,在浏览器的地址的#后添加参数,以作标识)
- 无法使用书签来记录当前页面的状态(在浏览器的地址的#后添加参数,以作标识)
- 受网络环境所限,可能引起异步请求不及时,用户无法从浏览器获得当前请求处理的状态(用程序跟用户以友好的提示)
- 异步请求的数据无法被搜索引擎索引
- 在不具备、没有启用JAVASCRIPT的设备、软件上无法使用异步请求(用原始的客户端操作方式替代实现)
- 不能进行跨域访问
- 需针对异步请求的实践方式编写相应的测试用例和测试工具,以写出安全可靠的异步交互代码
- 异步交互将会增加更多的服务端请求,对服务器端的应用造成较同步方式更多的负载
- 异步的编程方式较同步的编程方式更难维护和调试
- 因为没有了基于WAI-ARIA standards的HTML,所以屏幕的阅读将受到影响
源文档 <http://en.wikipedia.org/wiki/Ajax_%28programming%29#cite_note-deepLinkAjax-12>
出处:http://www.cnblogs.com/haokaibo/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。