Ajax的理解

Posted 温暖的人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax的理解相关的知识,希望对你有一定的参考价值。

简介:

是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

是什么?

  • 创建快速动态网页的技术
  • AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。

    传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。

AJAX基于因特网标准

  • XMLHttpRequest对象(与服务器异步交换数据)
  • javascript/DOM(显示/取回信息)
  • CSS(设置数据的样式)
  • XML(常用作数据传输的格式)

AJAX-创建XMLHttpRequest对象

创建XMLHttpRequest对象的语法:

variable=new XMLHttpRequest();

老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

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

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;
if (window.XMLHttpRequest)
{
    //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
    xmlhttp=new XMLHttpRequest();
}
else
{
    // IE6, IE5 浏览器执行代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

AJAX-向服务器发送请求

XMLHttpRequest对象用于和服务器交换数据

向服务器发送请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
方法和描述
open(method,url,async)

规定请求的类型,URL以及是否异地处理请求

  • method:请求的类型;GET或POST
  • url:文件在服务器上的位置
  • async:true(异步)或false(同步)
send(string)

将请求发送到服务器

  • string:仅用于POST请求

 

 

 

 

 

 

 

GET还是POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

GET请求

xmlhttp.open("GET","/try/ajax/demo_get.php",true);
xmlhttp.send();

POST请求

xmlhttp.open("POST","/try/ajax/demo_post.php",true);
xmlhttp.send();

AJAX-服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

属性 描述
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。

 

 

 

responseText 属性

如果来自服务器的响应并非 XML,请使用 responseText 属性。

responseText 属性返回字符串形式的响应,因此您可以这样使用:

document.getElementById("myDiv").innerhtml=xmlhttp.responseText;

responseXML 属性

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:

请求 cd_catalog.xml 文件,并解析响应:

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
    txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;

AJAX-onreadystatechange事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当 readyState 改变时,就会触发 onreadystatechange 事件。

readyState 属性存有 XMLHttpRequest 的状态信息。

下面是 XMLHttpRequest 对象的三个重要的属性:

属性 描述
   
   
   

以上是关于Ajax的理解的主要内容,如果未能解决你的问题,请参考以下文章

Javascript代码片段在drupal中不起作用

金蝶handler中 collection 代码片段理解

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

如何理解这段代码片段中的两对括号?

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解

前端面试题之手写promise