Ajax步骤及原理

一、什么是ajax

ajax是一种异步javaScript和xml。

是一种快速创建动态网页的技术。

可以通过和服务器进行少量的数据交换使网页进行异步更新,意味着可以不使网页重载的情况下进行数据的更新。

如果不用ajax那么数据更新需要刷新整个网页。

二、ajax的原理

ajax简单来说就是通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新界面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。

XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

XMLHttpRequest的简单的步骤:

1) 创建一个XMLHttpRequest对象
2) 调用该对象的open方法,其中参数包括:get/post、设定参数如url、是否异步
3) 如果是get请求,设置回调函数onreadystatechange = callback
4) Send

var xmlHttp = new XMLHttpRequest();
   xmlHttp.open('get','demo_get.html','true');//调用open()方法并采用异步方式
   xmlHttp.send(); //使用open()方法将请求发送出去
   xmlHttp.onreadystatechange()=>{ //回调函数
        if(xmlHttp.readyState === 4 && xmlHttp.status === 200){
         document.getElementById("myDiv").innerHTML=xmlhttp.responseText; //获得数据

        }
}

   为什么使用 Async=true ?

  我们的实例在 open() 的第三个参数中使用了 “true”。该参数规定请求是否异步处理。True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。

   在某些页面中可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当然要指定同步方式。
  onreadystatechange事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。
  通过把该参数设置为 “false”,可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。

它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。至于现在流行的很多ajax控件,比如magicajax等,可以返回DataSet等其它数据类型,只是将这个过程封装了的结果,本质上他们并没有什么太大的区别。

扫描二维码关注公众号,回复: 3580588 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_37538475/article/details/82885999
今日推荐