zoukankan      html  css  js  c++  java
  • 【jQuery】(8)---jquery Ajax

    jquery ajax

    一、AJAX 概述

    1、什么是 AJAX?

    特点 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

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

    传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

    2、Ajax的运行原理

    页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端

    将数据返回 给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面功能。

    原理


    二、Jquery Ajax概述

    通过JavaScript实现的ajax我这里就不再多讲,其实就是围绕浏览器内内置的Ajax引擎对象进行学习的,要使用js原生的Ajax完成异步操作,有如下几个步骤:

    1)创建Ajax引擎对象
    2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
    3)绑定提交地址
    4)发送请求
    5)接受响应数据
    

    这篇主要讲Jquery 实现AJAX。

    1、jQuery中的Ajax

    jQuery AJAX 技术常用的方法:ajax() , get() , post() , load() , getscript() 等这几种方法

    参数说明

    options : 完整 AJAX 请求的所有键/值对选项
            url : 被加载的数据的 URL(地址)
         data : 发送到服务器的数据的键/值对象
    callback : 当数据被加载时,所执行的函数
         type : 被返回的数据的类型 (html,xml,json,jasonp,script,text)
    

    在jQuery中,Ajax()方法属于最底层的方法,其它的方法都是对它进一步分装。第2层是load()get(),和post()。第3层是getScript()​getJSON()方法。

    下面会一个一个说明。


    三、jQuery中Ajax方法详解

    1、Ajax()方法

    1)通用写法

    $.ajax({    
      url: "http://www.oujiong.com", //请求的url地址   
      async: true,                //请求是否异步,默认为异步(true) 
      data: { "id": "value" },    //设置的是请求参数
      dataType: "json",           //用于设置响应体的类型 注意 跟 data 参数没关系!!!    
      type: "GET",   //请求方式    
      beforeSend: function(request) {        
        //请求前的处理
        request.setRequestHeader("Content-type","application/json");
        request.setRequestHeader("Source","100");
        request.setRequestHeader("Token","aaw--wssw-ss...");
      },   
      success: function(data) {        
      //请求成功时处理    
      },   
      complete: function() {        
        //请求完成的处理    
      },    
      error: function() {        
        //请求出错处理    
      }
    });
    

    2)、参数详解

    url
    String
    (默认: 当前页地址) 发送请求的地址。
    
    type
    String
    (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。
    注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
    
    timeout
    Number
    设置请求超时时间(毫秒)。此设置将覆盖全局设置。
    
    async
    Boolean
    (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
    
    data
    Object,String
    发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。
    
    dataType
    String
    预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:
    "xml": 返回 XML 文档,可用 jQuery 处理。
    "html": 返回纯文本 HTML 信息;包含 script 元素。
    "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。
    "json": 返回 JSON 数据 。
    "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,
    如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
    
    success
    Function
    请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态function (data, textStatus) { 
      // data could be xmlDoc, jsonObj, html, text, etc... 
    }
    

    2、get()方法

    get() 方法通过 HTTP GET 请求从服务器上请求数据。

    语法

    $.get(URL,data,function(data,status,xhr),dataType) //这里只有URL是必须的 其它三个是可选
    

    示例

    <script>
    $(document).ready(function(){
      $("button").click(function(){
        $.get("/jquery/demo_test.asp",function(data,status){
          alert("数据:" + data + "
    状态:" + status);
        });
      });
    });
    </script>
    

    亲自试一试

    3、post() 方法

    post() 方法通过 HTTP POST 请求从服务器上请求数据。

    语法

    $.post(URL,data,callback); //URL必须 其它可选
    

    示例

    $("button").click(function(){ 
      $.post("demo_test_post.asp", { 
        name:"小小", 
        age:4
      }, 
      function(data,status){ 
        alert("Data: " + data + "
    Status: " + status); 
      });
    });
    

    亲自试一试

    4、load() 方法

    load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

    语法

    $('selector').load(URL,data,callback) //URL必须 其它可选
    

    示例

    demo_test.txt

    <h2>jQuery and AJAX is FUN!!!</h2>
    <p id="p1">This is some text in a paragraph.</p>
    

    通过load方法把文件 "demo_test.txt" 的内容加载到指定的 元素中:

    $("#div1").load("demo_test.txt");
    

    亲自试一试

    总结 其它的也不多讲了,详细的可以参考文档:jQuery API 中文文档


    参考

    1、jQuery API 中文文档

    2、jQuery Ajax—参数详解

    3、jQuery Ajax 详解



    ``` 别人骂我胖,我会生气,因为我心里承认了我胖。别人说我矮,我就会觉得好笑,因为我心里知道我不可能矮。这就是我们为什么会对别人的攻击生气。 攻我盾者,乃我内心之矛(6)。 ```
  • 相关阅读:
    python中print打印显示颜色
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
    Ubuntu下Pycharm专业版安装
    解决Windows10运行VMware Workstation出现与Device Guard不兼容导致无法创建与运行虚拟机问题
    Script file 'D:\Anaconda3\Scripts\pipscript.py' is not present.
    Python中*args和**kwargs
    解决Pycharm运行卡顿问题
    一千行 MySQL 学习笔记,值得收藏!
    Ubuntu下安装QQ微信——亲测试有效!
    Windows 10专业版中如何添加 docker
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/12337724.html
Copyright © 2011-2022 走看看