代码改变世界

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.

 

  • 知识背景:

HTMLCSSJAVASCRIPT 一种WEB服务端技术(JAVA/.NET/PHP/...

AJAX中各技术点之间的关联

展示: HTML or XHTML and CSS

动态布局展示及与数据交互:the Document Object Model (DOM)

数据交换载体及数据展现的控制XMLXSLTJavaScript 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 相关标准

 

  • 优点
  1. 异步操作,按需请求,节省流量
  2. 用户体验较同步方式好

 

  • 缺点
  1. 由于异步操作没有在浏览器的history中进行注册,所以当用户点击浏览器的后退/返回按钮时就会返回到上一个浏览过的页面,而不是一个ajax请求的回退(解决方案:用不可见的Iframe触发浏览器的history的变化,在浏览器的地址的#后添加参数,以作标识)
  2. 无法使用书签来记录当前页面的状态(在浏览器的地址的#后添加参数,以作标识)
  3. 受网络环境所限,可能引起异步请求不及时,用户无法从浏览器获得当前请求处理的状态(用程序跟用户以友好的提示)
  4. 异步请求的数据无法被搜索引擎索引
  5. 在不具备、没有启用JAVASCRIPT的设备、软件上无法使用异步请求(用原始的客户端操作方式替代实现)
  6. 不能进行跨域访问
  7. 需针对异步请求的实践方式编写相应的测试用例和测试工具,以写出安全可靠的异步交互代码
  8. 异步交互将会增加更多的服务端请求,对服务器端的应用造成较同步方式更多的负载
  9. 异步的编程方式较同步的编程方式更难维护和调试
  10. 因为没有了基于WAI-ARIA standards的HTML,所以屏幕的阅读将受到影响

 

 

源文档 <http://en.wikipedia.org/wiki/Ajax_%28programming%29#cite_note-deepLinkAjax-12>