• Ajax 基础


    一:什么是 AJAX ?

    AJAX = 异步 JavaScript 和 XML。

    AJAX 是一种用于创建快速动态网页的技术。

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

    XMLHttpRequest 是 AJAX 的基础。

    所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

    XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    二:创建 XMLHttpRequest 对象

    所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。

    创建 XMLHttpRequest 对象的语法:

    var iable=new XMLHttpRequest();

    老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象: variable=new ActiveXObject("Microsoft.XMLHTTP");

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

     1 var xmlhttp;
     2 
     3 if (window.XMLHttpRequest) {
     4 
     5 // code for IE7+, Firefox, Chrome, Opera, Safari
     6 
     7 xmlhttp=new XMLHttpRequest();
     8 
     9 } else {
    10 
    11 // code for IE6, IE5
    12 
    13 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    14 
    15 }

    三:向服务器发送请求

    1.open()方法

    用于设置进行异步请求目标的URL,请求方法以及其他参数信息。

    xmlHttp.open("请求的类型 get/post","文件在服务器上的位置/Servlet","同步还是异步 false/true",username,password);

    2.send()方法

    用于向服务器发送请求,如果请求声明为异步,该方法将立即返回,否则将等到接收到响应为止。

    xmlHttp.send(content);cotent:用于指定发送的数据,可以是DOM对象的实例,输入流或字符串。如果没有参数需要传递,可以设置为null.

    3.setRequestHeader()方法 用于为post请求的HTTP头设置值。

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

    四:XMLHttpRequest对象的常用属性

    (1)onreadystateChange 属性用于指定状态改变时所触发的事件处理器。

    在ajax中,每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。

    http_request.onreadystatechange=function(){}

    (2)readyState 属性用于获取请求的状态,共包括5个属性值 0:未初始化 1:正在加载      2:已加载        3:交互中       4:完成

    (3)responseText 属性用于获取服务器的响应,表示为字符串。

    (4)responseXML 属性用于获取服务器的响应,表示为xml.

    (5)status属性用于返回服务器的HTTP状态码。 200:表示成功        202:表示请求被接受,但尚未成功           400:错误的请求          404:文件未找到              500:内部服务器错误

    五:发送ajax发送请求,4步骤:

    1.初始化XMLHttpRequest对象。为了提高程序的兼容性,需要创建一个跨浏览器的XMLHttpRequest对象。

    2.创建一个与服务器的连接。

    3.向服务器发送请求。

    4.为XMLHttpRquest对象指定一个返回结果处理函数(即回调函数),用于对返回结果进行处理。

    封装成一个函数:传一个对象。

     1 function AjaxCy(obj){
     2     //创建对象
     3     var xmlhr;
     4     if(window.XMLHttpRequest){
     5         xmlhr = new XMLHttpRequest();
     6     }else{
     7         xmlhr = new ActiveXObject("Microsoft.XMLHTTP");
     8     }
     9     //初始化
    10     //如果是post请求则需要指定请求头
    11     //发送
    12     if(obj.method=="post" || obj.method=="POST"){
    13         xmlhr.open(obj.method,obj.url,obj.sync);
    14         xmlhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    15         xmlhr.send(obj.data);
    16     }else{
    17         xmlhr.open(obj.method,obj.url+"?"+obj.data,obj.sync);
    18         xmlhr.send();
    19     }
    20     //回调函数    
    21     xmlhr.onreadystatechange = function (){
    22         if(xmlhr.readyState==4&&xmlhr.status==200){
    23             obj.fun(xmlhr.responseText);
    24         }
    25     };
    26 }
  • 相关阅读:
    SpringMvc执行流程
    Lock wait timeout exceeded; try restarting transaction解决方法
    MySQL删除复杂的重复数据的解决方案(一条数据项中包含多个值的情况)
    数据移植时递归运算查询部门及其下级所有部门的问题
    IDEA常用插件
    mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题
    时间日期操作
    spring项目中使用MD5加密方式
    idea如何调出仪表盘
    scanf使用过程中的技巧与坑位
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/5028766.html
Copyright © 2020-2023  润新知