博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajax学习总结
阅读量:6894 次
发布时间:2019-06-27

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

     一、ajax简介

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),AJAX 是一种与服务器交换数据的技术,他可以在不更新整个页面的情况下局部更新页面中的某一部分。

关于同步异步:

异步:程序一起执行

同步:程序上一个执行完下一个才执行

如果是异步通信方式(true),客户机就不需要等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作。这也是ajax可以做到不刷新页面,达到局部刷新的效果的原因

     二、ajax原理和XmlHttpRequest对象

 
Ajax的原理简单来说就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。XMLHttpRequest是ajax的核心机制,所以我们要搞清
楚这个过程和原理,必须对XmlHttpRequest有所了解。

(1)XMLHttpRequest的重要属性

 

属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState

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

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
 status

 200: "OK"

404: 未找到页面

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

 

 

 

 

 

 

 

 

 

 

 

 

(2)XMLHttpRequest工作流程

 

 
为了加深记忆,我们将XMLHttpRequest的工作流程比作打电话的流程
 
 流程             打电话流程 :                                    XMLHttpRequest工作流程:
第一步.          我们需要买一个电话                            创建一个XMLHttpRequest对象
第二步.          拨号                                                打开链接
第三步.          讲话                                                发送一个请求
第四步.          对方给出回应                                     接收数据
 
具体代码实现:
function ajax(url,data,fnSucc,fnerror){    //1.创建一个ajax对象    //ie6+    if(window.XMLHttpRequest){        //ie6+        var oAjax = new XMLHttpRequest();    }else{        //ie6        var oAjax = new ActiveXObject('Microsoft.XMLHTTP');    }    //2.打开地址    //open(提交方式(大写),url,是否异步);    oAjax.open('GET',url+'?'+json2url(data),true);    //3.发送    oAjax.send();    //4.接收数据    oAjax.onreadystatechange=function(){        if(oAjax.readyState==4){            if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){                //数据                fnSucc&&fnSucc(oAjax.responseText)            }else{                fnerror&&fnerror(oAjax.status)            }        }    };};

     三、ajax优点

    1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。

  2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。

  3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

    4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

     四、ajax缺点

1、ajax干掉了back按钮,即对浏览器后退机制的破坏。

2、对流媒体还有移动设备的支持不是太好等

 

     五、ajax注意事项

  • 编码需要一致,要不然会出现乱码
  • ajax返回的数据都是字符串
  • 防止缓存  可以通过设置   ?t=Math.random()或者是new一个最新的时间来防止缓存

转载于:https://www.cnblogs.com/Anne1991/p/6171836.html

你可能感兴趣的文章
使用scrapy抓取股票代码
查看>>
hashmap实现原理浅析
查看>>
1.1什么是数据仓库
查看>>
注册个博客好累哦
查看>>
spring mvc 如何从前台表单传递集合参数并绑定集合对象
查看>>
编程实现strcpy函数功能
查看>>
网络红人魏道道:做微商的不知道就真的“out”了
查看>>
PHP关于时间的时段的重合、 整合的方法
查看>>
MySQL 分析服务器状态
查看>>
Linux基础命令
查看>>
Tomcat日志
查看>>
linux基础篇-文本三剑客之AWK
查看>>
DNS服务原理及区域解析库文件配置
查看>>
TEC-005-cifs-Host is down
查看>>
saltstack模块之pkg相关模块
查看>>
linux查看内核版本号
查看>>
SVN合代码时遇到的问题
查看>>
tuna.tsinghua yum repo
查看>>
ext store remove old datas load new datas优化
查看>>
【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
查看>>