ajax本质

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

ajax作用:在不刷新整个页面情况下,更新部分网页

ajax实质:ajax全部的工作都由一个对象来做,XMLHttpRequest对像(简写xmlhttp)


先给一个简单的使用xmlhttp来发送ajax请求的例子

<html>

<head>

<script type="text/javascript">

function loadXMLDoc()

{

var xmlhttp;

if (window.XMLHttpRequest)

{// code for 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)

{

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

}

xmlhttp.open("GET","/ajax/test1.txt",true);

xmlhttp.send();

}

</script>

</head>

<body>


<div id="myDiv"><h2>Let AJAX change this text</h2></div>

<button type="button" AJAX 改变内容</button>


</body>

</html>

创建XMLHttpResponse对象:

xmlhttp=new XMLHttpRequest() 是后来的浏览器才支持

更早的用xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

先用 if(window.XMLHttpRequest) 来判断支持,选择用哪种方式来创建该对象


发送请求:

xmlhttp.open() xmlhttp.send()

可以通过open()的参数来配置 是 get 或者 post方式

post和get区别

1 post无法使用缓存

2 get发送参数的长度有限制

3 post比get更安全

分析

1 只能记了

2 get的参数放在url中,url长度有限制

3 post的请求数据放在数据报中,get放在url中

post方法设置请求参数示例:

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

xmlhttp.setRequestHeader("Content-type","application/x-www-from-urlencoded");

xmlhttp.send("fname=Bill&name=Gates");

setRequestHeader()方法添加 HTTP 头 至于为什么这样用? 不知道


响应:

xmlhttp.responseText 或者 xmlhttp.resonseXml

也就是说执行完请求以后,如果执行成功,那么不用任何操作,只需要访问xmlhttp的这两个对象即可

访问到响应的结果

就像示例中的这样 document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

responseXml与resonseText区别:两者的数据格式是不同的 responseText是字符串,responseXml是xml格式

xmlhttp状态标示:

readyState、status、onreadystatechange

readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化

  • 1: 服务器连接已建立

  • 2: 请求已接收

  • 3: 请求处理中

  • 4: 请求已完成,且响应已就绪

status:

200: "OK"

404: 未找到页面

onreadystatechange

函数,当readyState改变时被触发

此时再来看示例中的这段代码是什么意思

xmlhttp.onreadystatechange=function()

{

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

{

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

}

}

就是说 在readyState改变时,会触发这个方法

方法体是 如果执行成功(xmlhttp.readyState==4 && xmlhttp.status==200

以 xmlhttp的readyState和status属性作为请求执行成功的依据


从上述可以看出,从上传到响应,到执行状态标示,所有的动作都是xmlhttp放出的,所有的信息结果都储存在xmlhttp属性


xmlhttp是XMLHttpRequest对象的简写

XMLHttpRequest 用于在后台与服务器交换数据,所有的浏览器都支持XMLHttpRequest对象


以上就是ajax的本质内容

不管是 jquery中的jquery.ajax()或者 jquery.post() jquery.get方法都是对这些本质内容的封装(猜测)

以上所有内容可以在w3c ajax部分找到对应内容

写一篇博客只为日后忘记时能快速的看一遍

也加深一下记忆,讲一下自己的见解

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但是在某些特殊情况下,我们可能还需要使用IE6来访问网页。而在IE6中,我们通常会使用JavaScript来提交表单,来看一下具体操作。
PHP中的count()函数是用来计算数组或容器中元素的个数。这个函数十分方便,在编写代码时使用频率也非常高。无论你是要统计数组的长度、统计字符串中字符出现的次数还是统计对象中属性的个数,count()都可以帮助你轻松
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不刷新整个页面的情况下,向服务器发送请求并接收响应。通常来说,我们使用 AJAX 请求是为了获取后台数据,并将其展示在前端页面上。然而,有时候我们只需要
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页用户体验的技术,通过与服务器进行异步通信,实现在网页上局部刷新数据而不必整个页面刷新的功能。在实际开发中,我们经常需要从服务器端下载文件,而传统
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以在不刷新整个页面的情况下,向服务器发送请求并获取响应数据。在某些场景下,我们需要通过AJAX下载Excel文件流,以便于在前端使用或保存到本地。本文将详
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax,我们可以在不刷新整个页面的情况下向服务器发送请求并获得响应数据。而在Ajax的基础上,.get和.post是两种常用的请求方法,它们分别用于发送GET和POST请
AJAX(Asynchronous JavaScript and XML)是一种在网页上实现异步数据传输的技术。通过AJAX,网页可以在不刷新整个页面的情况下与服务器进行数据交互,提升用户体验和页面性能。在实际应用中,AJAX广泛用于表单提交、
在使用Ajax下拉加载数据的过程中,有时候会出现无法取到360度的问题。这个问题可能是由于代码逻辑的问题导致的,也有可能是网络延迟引起的。为了解决这个问题,我们需要对代码进行仔细排查,并且在合适的地方添加适当
本文将介绍Ajax和.post之间的区别。Ajax是一种用于在网页上进行异步通信的技术,能够在不刷新整个页面的情况下更新部分页面内容。.post是jQuery中的一个方法,用于向服务器发送POST请求。虽然它们都可以用于发送异步
AJAX(Asynchronous JavaScript and XML)是一种在Web页面上进行异步数据请求和交互的技术。它的出现使得页面在后台与服务器进行数据交互的同时,不需要重新加载整个页面。在网页开发中,常常需要实现文件上传功能,
最近,我对于在IE浏览器中使用Ajax上传文件进行了一番研究。我发现IE浏览器对于Ajax上传文件提供了支持,并且使用起来也相对简单。事实上,我们可以使用ActiveXObject对象来实现在IE浏览器中上传文件的功能。
AJAX是一种用于在不重新加载整个网页的情况下从服务器异步传输数据的技术。它允许我们通过JavaScript与服务器进行通信,并在网页上实现动态更新。然而,在使用AJAX时,我们可能遇到跨域问题。跨域是指在浏览器中,
当涉及与跨域请求相关的Ajax开发时,我们通常会选择使用POST方法。然而,有时我们会不得不面对无法使用POST方法发送Ajax请求的情况。本文将会深入探讨造成这种限制的原因,并提供一些常见且解决此问题的方法。
Python是一种常用的编程语言,它可以用来开发各种各样的应用程序。其中,猜数字游戏算得分是Python初学者非常适合的练习项目之一。
AJAX(Asynchronous JavaScript and XML)指的是一种在客户端和服务器之间进行异步数据交互的技术,它可以在不影响页面加载速度的情况下,实现与服务器的数据交互,并动态更新页面内容。通过AJAX,用户可以在不刷新整
AJAX 是一种用于在后台与服务器进行异步通信的技术。它能够实现在不刷新整个页面的情况下,通过后台发送请求并将响应返回到前端。然而,有时候在使用 AJAX 上传文件时会出现错误 7。本文将探讨这个错误的原因,并提
在现代网页开发中,Ajax 技术的应用日益广泛。其中,Ajax 下拉菜单 slide(下拉菜单的滑动效果)是一种常见且有趣的交互方式。通过使用 Ajax 技术实现下拉菜单 slide,可以为用户提供更好的用户体验,同时也能增加网
AJAX(Asynchronous JavaScript and XML)是一种常用的Web开发技术,它通过异步通信方式实现了与服务器的数据交互。在AJAX中,我们可以使用HTTP协议发送请求到服务器并获取响应。然而,有时候我们需要在请求中传递一
Python是一门非常流行的编程语言,近年来它的受欢迎度一直在不断地提高。在Python的使用者中还有一位特别的粉丝,他就是我们的歌手王力宏。
在前端开发中,使用Ajax来进行文件下载是一种常见的方法。通过Ajax可以实现在不刷新整个页面的前提下,向服务器发送请求并接收返回的文件数据。然而,当文件较大或者下载过程比较耗时时,我们可能需要提供一些提示或