Ajax概述


Ajax概述

ajax是什么

首先回答第一个问题,ajax是什么,它不是一种新的编程语言,而是一种基于已有的web技术而构建的技术,主要用于创建更好更快以及交互性更强的Web应用程序。它是Asynchronous JavaScript + XML的缩写,是一种让浏览器与服务器偷偷交互的技术。

基本思想: 允许一个互联网浏览器向一个远程页面/服务做异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个站点,或是更新当前页面的局部而不刷新整个页面。该技术能够改进客户端(尤其指浏览器端)的用户体验。

过程一瞥: 通过 AJAX,您的 JavaScript 可使用 JavaScript的 XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

ajax的交互模型

包含技术: Ajax交换模型

  • 基于 XHTML/CSS 标准的展现
  • 使用 DOM 的动态显示和交互
  • 使用 XML 和 XSLT 的数据交换和处理
  • 使用 XMLHttpRequest 的异步数据获取

交互模型: Ajax在Browser端引入一个执行引擎,它一边应付user的请求,一边把某些必须交给服务器处理的东西背地里传送给服务器,同时背地里把结果准备好(接受服务器端的数据),展现给客户的技术模式。

同步和异步的区别

Ajax是异步操作,在请求刷新局部页面的同时并不阻滞用户对页面其他地方的操作,从而增强了用户的操作性。而同步就是整个页面都刷新,异步就是只刷新用了Ajax技术的部分。

区别:

  • 同步:脚本会停留并等待服务器发送回复然后再继续
  • 异步:脚本允许页面继续其进程并处理可能的回复

如何解决跨域问题

跨域问题简单的理解就是因为JS同源策略的限制,a.com域名下的JS无法操作b.com或c.a.com下的对象。

备注:

  1. 如果是端口或者协议造成的跨域问题前端是无能为力的
  2. 在跨域问题上,域仅仅通过URL的首部来识别而不会尝试判断相同的IP地址对应的域或者两个域是否对应一个IP

解决:

  1. document.domain+iframe
  2. 动态创建script标签

Ajax进阶

Ajax原理详细剖析


Ajax后续

左银右煌 /
Published under (CC) BY-NC-SA in categories programming  tagged with Ajax