ajax

Posted 宋泊然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax相关的知识,希望对你有一定的参考价值。

  1、概念:Asynchronous JavaScript And XML 异步的javascript和xml

      1.异步和同步:客户端和服务端相互通信的基础上

          异步:客户端不需要等待服务器端的相应,在服务器处理请求的过程中客户端可以进行其他操作

            

 

 

 

 

          同步:客户端不需要等待服务器端的相应,在服务器处理请求的过程中客户端可以进行其他操作

              

 

                                               

 

 

        实际上:ajax是一种无须重新加载整个网页的情况下,能够更新部分网页的技术,提升用户的体验。但在之前需要刷新,用了ajax就不需要。

 

 

   2、实现方式:

        1):原生的js实现方式:

            

//创建核心对象

var xhttp;
if (window.XMLHttpRequest) {//高版本浏览器
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6, IE5等低版本浏览器
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

//建立连接

/*
*参数
*1.请求方式:GET POST get方式请求参数在URL后面拼接,send方法为空参。post方式 请求参数在send方法中定义
*2.请求的URL
*3.异步或者同步请求  true(异步)或false(同步)
/
xhttp.open("GET", "demo_get.asp", true);

//发送请求

xhttp.send();

//接受并处理来自服务器的相应结果
//获取方式: xhttp.responseText
//何时获取?当服务器相应成功后再获取

//当xhttp对象的就绪状态改变时,触发事件onreadystagechange

xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
                //获得服务器相应结果
            document.getElementById("demo").innerhtml = this.responseText;
       }
    }


    

    状态码和继续状态的值如下:

        

 

 

        2):jQuery实现方式:

            (1):$.ajax()

                语法:$ajax(url,[settings]);或$({键值对});

 

                例子:

                    $({

                    url:请求路径,

                    type:请求方式,

                    data:请求参数 多个参数用&连接,如 data:"username"=jack&age=23

                    //第二种方式: data:{"username":"jack","age":23}

                    success:function(){}//响应成功后的回调函数

                    error:function(){}//表示如果请求相应出现错误执行的回调函数

                    dataType:设置接收道德相应数据的格式 有text,json,xml,html,script等

                    每个键值对之间需要写,最后一个不用写

                  });

            (2):$.get():发送GET请求

                $.get(url,[data],[callback],[type])中括号内容可选即可写也可不写

                  url:请求路径

                  data:请求参数

                  callback:回调函数

                  type:相应结果类型

                    例如:   function fun(){

                            $.get("ajaxServelt",{username:"rose"},function(){},"text");

                              }

            (3):$.post():发送post请求              

                  $.post(url,[data],[callback],[type])中括号内容可选即可写也可不写

                  url:请求路径

                  data:请求参数

                  callback:回调函数

                  type:相应结果类型

                    例如:   function fun(){

                            $.post("ajaxServelt",{username:"rose"},function(){},"text");

                              }

以上是关于ajax的主要内容,如果未能解决你的问题,请参考以下文章

Javascript代码片段在drupal中不起作用

前端面试题之手写promise

Ajax 片段元标记 - Googlebot 未读取页面内容

执行AJAX返回HTML片段中的JavaScript脚本

javascript AJAX片段

Spring MVC 3.2 Thymeleaf Ajax 片段