AJAX - 基本知识
AJAX 基本知识
2023-09-14 09:03:13 时间
Ajax=异步的JavaScript和XML
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 一、AJAX - 创建 XMLHttpRequest 对象 1.什么是XMLHttpRequest对象 所有现代浏览器(IE7、Chrome、Firefox、Safari、Opera)均支持XMLHttpRequest对象,XMLHttpRequest对象用来在后台与服务器交换数据,实现页面局部刷新。 2.如何创建XMLHttpRequest对象 一般浏览器都支持XMLHttpRequest对象,但部分IE浏览器支持的是ActiveXObject。 var xmlhttp;
如果像html表单那样POST数据,在setRequestHeader来添加HTTP头,使用send方法中规定要发送的数据:
向请求添加 HTTP 头:setRequestHeader(header,value)
header: 规定头的名称
value: 规定头的值 3.1.3关于异步True或False: 对于web开发来说,发送异步请求是一个巨大的进步,因为很多在服务器执行的任务都相当费时,在Ajax出现前,这可能会引起应用程序挂起或停止。 通过Ajax,JavaScript无需等待服务器响应,而是: 1.在等待服务器响应期间执行其它脚本 2.当响应就绪后对响应进行处理 当Async=True时,应设置onreadystatechange事件中处于就绪状态时的执行函数:
responseText 属性返回字符串形式的响应,因此您可以这样使用:
当readyState=4且status=200时,表示响应已就绪:
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 一、AJAX - 创建 XMLHttpRequest 对象 1.什么是XMLHttpRequest对象 所有现代浏览器(IE7、Chrome、Firefox、Safari、Opera)均支持XMLHttpRequest对象,XMLHttpRequest对象用来在后台与服务器交换数据,实现页面局部刷新。 2.如何创建XMLHttpRequest对象 一般浏览器都支持XMLHttpRequest对象,但部分IE浏览器支持的是ActiveXObject。 var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");3.XMLHttpRequest对象如何与服务器交换数据 3.1 向服务器发送请求 我们使用XMLHttpRequest的Open和Send方法:
如果像html表单那样POST数据,在setRequestHeader来添加HTTP头,使用send方法中规定要发送的数据:
xmlhttp.open("POST","ajax_test.asp",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Bill lname=Gates");
向请求添加 HTTP 头:setRequestHeader(header,value)
header: 规定头的名称
value: 规定头的值 3.1.3关于异步True或False: 对于web开发来说,发送异步请求是一个巨大的进步,因为很多在服务器执行的任务都相当费时,在Ajax出现前,这可能会引起应用程序挂起或停止。 通过Ajax,JavaScript无需等待服务器响应,而是: 1.在等待服务器响应期间执行其它脚本 2.当响应就绪后对响应进行处理 当Async=True时,应设置onreadystatechange事件中处于就绪状态时的执行函数:
xmlhttp.onreadystatechange=function() if (xmlhttp.readyState==4 xmlhttp.status==200) document.getElementById("myDiv").innerHTML=xmlhttp.responseText; xmlhttp.open("GET","test1.txt",true); xmlhttp.send();当Async=False时,处于同步状态,此时JavaScript会等到服务器就绪时才执行,无需写onreadystatechange监控函数:
xmlhttp.open("GET","test1.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText;3.2 服务器的响应 如果要获得来自服务器的响应,使用XMLHttpRequest中的responseText或responseXML。
responseText 属性返回字符串形式的响应,因此您可以这样使用:
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;3.2.2 使用responseXML 如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性: 请求 books.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;3.3 Ajax 的 onreadystatechange事件 当请求发送到服务器的整个过程中,我们需要执行一些基于响应的任务,即每当readyState改变时都会触发onreadystatechange事件,readyState属性存有XMLHttpRequest的状态信息。 下面是XMLHttpRequest对象的三个重要属性:
当readyState=4且status=200时,表示响应已就绪:
xmlhttp.onreadystatechange=function() if (xmlhttp.readyState==4 xmlhttp.status==200) document.getElementById("myDiv").innerHTML=xmlhttp.responseText;3.4 使用callback回调函数 callback函数是一种以参数的形式传递给另一个函数的函数,我们在处理Ajax任务时,一般都会写一个处理Ajax请求的标准函数,这个标准函数包括请求的url和发生onreadystatechange时间所执行的任务:
相关文章
- ajax跨域解除方案,关于Ajax跨域问题及解决方案详析「建议收藏」
- Ajax-hook拦截全局ajax请求操作
- Django 中使用 ajax 请求的正确姿势
- ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
- 关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]
- SpringMvc+Spring+MyBatis+Maven+Ajax+Json注解开发
- TP3.2 使用 ajax 写法demo
- Django Ajax动态图形监控
- js ajax 设置代理ip(vue Ajax 设置 代理ip)
- Ajax Post数据加号变空格详解编程语言
- ajax提交post请求出现数组被截断情况的解决方法详解编程语言
- ajax异步加载查询数据库详解编程语言
- Ajax快速查询MySQL数据库(ajax查询mysql)
- AJAX技术简化Oracle数据库的访问处理(ajax连接oracle)
- AJAX初体验之实战篇――打造博客无刷新搜索
- Ajax和Asp的编程
- AJAX应用之草稿自动保存
- 解决AJAX中跨域访问出现'没有权限'的错误
- Ajax对象包含post和get两种异步传输方式
- 什么是Ajax
- jQuery提交表单ajax查询实例代码
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
- 深入Ajax代理的JavaServlet的实现详解
- php中如何判断一个网页请求是ajax请求还是普通请求
- 提交表单最简单的AJAX程序分享
- jquery跨域请求示例分享(jquery发送ajax请求)
- ajax加载页面服务器返回304notmodified
- php+ajax实现带进度条的大数据排队导出思路以及源码
- ThinkPHP通过AJAX返回JSON的两种实现方法