博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax
阅读量:6449 次
发布时间:2019-06-23

本文共 1983 字,大约阅读时间需要 6 分钟。

  全称:异步javascript和XML

使用jax的优势

  • 不需要安装插件支持
  • 通过适当的AJAX应用能达到更好的客户体验
  • 减轻服务器和带宽的负担

Ajax工作原理

在用户与服务器之间加了一个中间层,使用户操作与服务器响应异步化

XMLHttpRequest对象实现异步交互

XMLHttpRequest对象

1.如何创建 XMLHttpRequest

      IE5,IE6    

XMLHttpReq=new ActiveXObject("*****")

  其他

     原生XMLHttpRequest对象

XMLHttpReq=new XMLHttpRequest();

格式:

 

var xmlHttp//声明一个保存XMLHttpRequest的变量function  CreatXHR(){    if(window.ActiveXObject){      xmlHttp=new ActiveXObject("******");//IE5,IE6    }else{      xmlHttp=new XMLHttpRequest();//IE7+以及其他浏览器    }{

2.创建好XHR对象后准备启动一个请求

xhr.open(method,url,asynchronous);

method:设置请求类型:get和post请求

url:  请求地址

asynchronous:  默认为true异步  false为同步

 

3.设置请求头

xhr.setRequestHeader(key,value);//可以设置多个头信息

4.发送Get请求

Get请求直接将输入的数据放入到异步请求的URL地址中,而send方法不发送任何数据.

xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true);xmlhttp.send();

5.发送POST 请求

Post请求将数据统一放在send()方法中发送,请求地址没有任何信息.

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据

xmlhttp.open("POST","/try/ajax/demo_post2.php",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Henry&lname=Ford");

数据不多采用Get 否则  Post

 

注册回调事件处理函数

onreadystatechange 事件

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

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

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

 

if (xmlhttp.readyState==4 && xmlhttp.status==200)    {        document.getElementById("***").innerHTML=xmlhttp.responseText;    }

 

注意: onreadystatechange 事件被触发 4 次(0 - 4), 分别是: 0-1、1-2、2-3、3-4,对应着 readyState 的每个变化

 

 处理服务端响应的内容

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

 

responseText 属性

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

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

 

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

responseXML 属性

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

xmlDoc=xmlhttp.responseXML;txt="";x=xmlDoc.getElementsByTagName("ARTIST");for (i=0;i
";}document.getElementById("myDiv").innerHTML=txt;

 

转载于:https://www.cnblogs.com/tanlei-sxs/p/10074491.html

你可能感兴趣的文章
libevent mysql php_linux+nginx+mysql+php的简单配置
查看>>
python爬虫周志_python爬虫第二周
查看>>
python语言迷宫游戏_python代码实现一个迷宫小游戏
查看>>
rpmbuild打包mysql5.7_关于rpmbuild打包mysql造成无法启用aio功能
查看>>
mongodb启动成功连不上_MongoDB无法连接/认证失败
查看>>
mysql myisam引擎_试题-说一下mysql的MyISAM引擎 - 拿OFFER
查看>>
mysql 单机 最高负载_haproxy(单机)+mysql集群负载均衡
查看>>
oldpassword mysql_mysql OLD_PASSWORD's problem | 2hei's site
查看>>
python grequests极限_在Python中利用grequests实现一个并发请求功能
查看>>
python通过sum函数实现1到n的和_Python定义函数实现累计求和操作
查看>>
python隐藏源代码_隐身 对 《Python源码剖析》 的评论 | 豆瓣阅读
查看>>
华南x79主板u盘装系统教程_华南x79主板怎么装win7系统|华南x79主板装win7及BIOS设置...
查看>>
结构化查询语句简称mysql_整理MySql常用查询语句
查看>>
java spring 数据库连接_Spring连接数据库的几种常用的方式
查看>>
java list 分组数量_java8 集合 多字段 分组 统计个数代码
查看>>
java8 泛型 null 报错_Java8自定义带泛型的函数式接口
查看>>
java aqs面试题_Java 并发面试题:说下你对 AQS 的理解?
查看>>
java定义两个动物抽象类 程序_java抽象类和接口详解
查看>>
mysql中builder_Laravel - MySQL数据库的使用详解2(Query Builder用法1:查询操作)
查看>>
java 值传递_Java只有值传递
查看>>