《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的基本介绍,更深入的内容会在后面的章节讨论。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文详细介绍了 XMLHttpRequest 相关知识,涉及内容: AJAX、XMLHTTP、XMLHttpReq...
    semlinker阅读 13,767评论 2 18
  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 3,325评论 0 7
  •   2005 年,Jesse James Garrett 发表了一篇在线文章,题为“Ajax: A new App...
    霜天晓阅读 903评论 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,816评论 1 45
  • 人生总会面临各种各样的选择,这也是我觉得生活有意思的地方。我不惧怕改变,却接受不了别人波涛汹涌下的我竟如死灰。 一...
    三文鱼33阅读 204评论 0 0