码迷,mamicode.com
首页 > Web开发 > 详细

ajax只是一个称呼

时间:2016-04-29 00:16:53      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

  记得刚入行的时候,看到ajax,即异步的javascript和xml这样一个概念,一点感觉都没有。参加工作前的第一轮面试,被问到有没有自己实现过ajax,我觉得自己实现肯定很复杂吧。最近nodeJS好像一下子火了,ES6也快和大家正式见面了。浏览一篇名为《javascript:一个吊丝的逆袭》又看到ajax,时过境迁,感觉ajax简单的简直有点污。所以今天就着这个劲,把ajax说说,毕竟每时每刻都有刚入行的朋友,希望你们不会被“异步的javascript和xml”这样一个稍微有点小长的名字给唬了。

  • 从名字理解

  从名字说起,“异步的javascript和xml”,其中javascript是一种流行于前端页面的语言,它可以操作html页面的各种元素,让静止的页面(静态页面)动起来(动态页面);而xml,一种树形数据格式,用来传输数据用的。就这样,最有迷惑的是异步的,什么叫做异步的?举个生活中的栗子。你本来和小明约好放学一起回家的,结果半路小明被小红叫去修灯泡了,于是你就不等小明,自己回家了。不一起走了,这就是异步。你若非要在原地等小明回来,然后在一起走,也不是不行,因为你要同步嘛。

  • 从效果理解

  如果你看过一两篇ajax的入门文章,一定知道ajax的作用无非是——页面的局部刷新(整体页面不动,局部变动)。如何做到的?页面向服务器发起一个请求,然后接收到服务器返回的数据并将数据渲染到当前页面,如此而已。动态渲染,这不就是JS最擅长的吗。发送请求和获取数据用到的是JS的XMLHttpRequest对象。所以说,ajax,就是给一段javascript代码起了个名字。

  • 从核心理解

  要理解ajax,不得不介绍XMLHttpRequest对象,是因为XMLHttpRequest是ajax的核心,也是几乎是ajax的全部。1.XMLHttpRequest 对象用于在后台与服务器交换数据。2.所有现代的浏览器都支持 XMLHttpRequest 对象。

  方法:

  open(method,url,async)     规定请求的类型(GET/POST)、URL 以及是否异步处理请求。

  send()                              将请求发送到服务器

  属性:

  responseText                     获得字符串形式的响应数据。

  readyState                        存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。(0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完                                                                             成,且响应已就绪)

  status                               响应状态码(常见的如:200代表请求成功,404代表未找到页面)

  onreadystatechange           存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

  • 从源码理解

  ----------------------------创建XMLHttpRequest对象-----------------------------------------

  var xmlhttp;

  if (window.XMLHttpRequest) {//  IE7+, Firefox, Chrome, Opera, Safari

    xmlhttp = new XMLHttpRequest();

  } else {// code for IE6, IE5

    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

  }

  ----------------------------定义成功接收数据后进行的操作,渲染页面--------------------------------------------------
   xmlhttp.onreadystatechange = function() {

    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

      alert(xmlhttp.responseText);

    }else if(xmlhttp.readyState == 4){

      alert(xmlhttp.responseText);

    }

  }

  -----------------------------设置XMLHttpRequest参数并发送请求-----------------------------------------

  xmlhttp.open("GET",url,true);

  xmlhttp.send();

 

 既然是入门性质的,就不展开了,展开我也未必说得清,更多细节参考ajax教程  http://www.w3school.com.cn/ajax/index.asp

ajax只是一个称呼

标签:

原文地址:http://www.cnblogs.com/dwding/p/5444808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!