《JavaScript DOM编程艺术》12:Ajax

这是《JavaScript学徒》系列的第十二课,今天继续《JavaScript DOM编程艺术》第7章,我们会一起学习Ajax的概念。Ajax是异步加载页面内容的技术,意思是,点击连结后,并不会刷新整个页面,但也能载入并显示新内容。这样,我们就不用每次操作后都要等待网页刷新。你的网页用起来就像桌面应用一样,大大提高用户体验。

本文同步发表于我的个人网站:

https://zacklive.com/javascript-dom-ajax/

教学视频连结

YouTube

微博

XMLHttpRequest

Ajax的核心就是XMLHttpRequest对象:

var request = new XMLHttpRequest();

使用例子

function getNewContent() {  var request = new XMLHttpRequest();  if (request) {    request.open( "GET", "scripts/example.txt", true);    request.onreadystatechange = function() {      if (request.readyState == 4) {        alert("Received");        alert(request.responseText);      }    };    request.send(null);  } else {    alert('Sorry, your browser doesn\'t support XMLHttpRequest');  }  alert("Done");}

open的三个参数分别是:

请求方法, 如"GET", "POST", "PUT"等

请求位置

是否异步操作

readyState有5种值:

0: 未初始化 1: 正在加载 2: 加载完毕 3: 正在交互 4: 完成

传回来的数据有两种:

responseText: 文本字符串形式

responseXML: Content-Type为"text/xml"

XMLHttpRequest遵守同源策略,也就是只能下来同一个网域(网址)的数据。若是从其他网站取得数据或加载硬盘中的文件,会得到:"Cross origin requests are only supported for HTTP..."跨来源请求错误消息。

异步请求不会等待数据传回,而是继续运行后面的程式,因此,有可能上例中的“Done”会先于“Received”显示。

这是Ajax的基本介绍,更深入的内容会在后面的章节讨论。

你可能感兴趣的:(《JavaScript DOM编程艺术》12:Ajax)