zoukankan      html  css  js  c++  java
  • JQUERY中的AJAX应用

    Ajax介绍

    1.什么是Ajax

      Ajax全称为"Asynchronous JavaScript and XML",是由客户端js所发起的http请求代号.

      实现无刷新的数据更新界面效果.

    2.Ajax原理

      运用XHTML+CSS来表达信息;

      运用JavaScript操作DOM(Document Object Model)运行动态效果;

      运用XML和XSLT进行数据交换及操作;

      运用XMLHttpRequest为Agent与网页服务器进行异步数据交换;

      运用JavaScript技术实现

    3.Ajax的优点

      1.不需要任何浏览器插件,在任何支持JavaScript的浏览器上运行

      2.优秀的用户体验

      3.提高Web程序的性能

      4.减轻服务器和带宽的负担

     4.Ajax的缺点

      1.它可能破坏浏览器后退按钮的正常行为

      2.对搜索引擎的支持的不足

      3.开发和调试工具的缺乏

      4.手持设备支持性差

    5.XMLHttpRequest对象

      XMLHttpRequest对象的属性:

        1.readyState:HTTP请求的状态,这个状态的属性值从0增加到4.

    状态,名称和含义
    状态 名称 描述
    0 Uninitialized 初始化状态.XMLHttpRequest对象已创建或被abort()方法重置.
    1 Open open()方法已调用,但是send()方法未调用.请求还没有被发送.
    2 Sent Send()方法已调用,HTTP请求已发送到Web服务器.未接受到响应.
    3 Receiving 所有响应头部都已经接收到.响应体开始接收但未完成.
    4 Loaded HTTP响应已经完全接收.

        2.responseText:目前为止从服务器接收到的响应体(不包括头部),或者如果还没有接收到数据的话,就是空字符串.

        3.responseXML:对请求的响应,解析为XML并作为Document对象返回.

        4.status:由服务器返回的HTTP状态代码.

        5.statusText:对应status状态的状态名称.

      XMLHttpRequest对象的方法:

        1.abort():取消当前响应,关闭连接并且结束任何未决的网络活动.把XMLHttpRequest对象的readyState属性重置为0的状态,并且取消所有未决的网络活动.

        2.getAllResponseHeaders():把HTTP响应头部作为未解析的字符串返回.如果readyState小于3,这个方法返回null.

        3.getResponseHeader():返回指定的HTTP响应头部的值.

        4.open():初始化HTTP请求参数,例如URL和HTTP方法,但是并不发送请求.

          语法:

    open(method,url,async,username,password)

          参数说明:

            method:是用于请求的HTTP方法.

            url:参数是请求的主体.

            Async:参数指示请求使用应该异步地执行.如果这个参数是false,请求是同步的.

            username和password参数是可选的,为url所需的授权提供认证资格.

        5.send():发送HTTP请求,使用传递给open()方法的参数,以及传递给该方法的可选请求体.

        6.setRequestHeader():向一个打开但未发送的请求设置或添加一个HTTP请求.

    jQuery中的Ajax

    1.load()方法

      load()方法是jQuery中最为简单和常用的Ajax方法,通常用来载入远程HTML代码并将加载的HTML代码插入DOM中.

      语法:

    load(url[, data][, callback]);

      参数说明:

        url:表示请求的HTML页面的URL

        data(可选):发送到服务器端的key/value数据(一般用json格式),为object类型

        callback(可选):请求完成(无论成功或失败)时的回调函数

      1)load()加载指定的HTML文件

      2)load()可筛选载入的HTML文档,用法是:load(url selector).

      3)传递方式.load()方法的传递方式根据参数data来自动指定.如果没有参数传递,则采用GET方式传递,反之,则会自动转换为POST方式.

      4)回调参数.对于必须在加载完成后才能继续的操作,load()方法提供了回调函数(callback),该函数有3个参数,分别代表请求返回的内容,请求状态和XMLHttpRequest对象.

          load()方法中.无论Ajax请求是否成功,只要当请求完成(complete)后,回调函数(callback)就被触发.

     2.jQuery.get()方法与jQuery.post()方法

      1.jQuery.get()方法

        $.get()方法使用GET方式来进行异步请求.

          语法:

    $.get(url[, data][, callback][, type])

          参数说明:

            url:待载入页面的URL地址;

            data:(可选)待发送Key/value参数;

            callback:(可选)载入成功时回调函数.

            type:(可选)返回内容格式, xml,html,script,json,text,_default.

        $.get()方法的回调函数:

    //回调函数
    function(data, textStatus{
            //代码       
    }

          参数说明:

            data:参数代表请求返回的内容,

            textStatus:参数代表请求状态,对应有success,error,notmodified,timeout等四种状态.

      2.jQuery.post()方法

        $.post()方法通过远程HTTP POST请求载入信息.

          语法:

    $.post(url[, data][, callback][, type])

          参数说明:

            url:待载入页面的URL地址;

            data:(可选)待发送Key/value参数;

            callback:(可选)载入成功时回调函数.

            type:(可选)返回内容格式,xml,html,script,json,text,_default.

          

          GET提交方法与POST提交方法存在如下的区别:

            GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器.

            GET方式对传输的数据有大小限制(通常不能大于2KB),而使用POST方式传递的数据量要比GET方式大得多(理论上不受限制).

            GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码.在某种情况下,GET方式会带来严重的安全性问题,而POST方式相对来说安全性要高.

            GET方式和POST方式传递的数据在服务器端的获取也不相同.在ASP.NET中,GET方式的数据可以用Request.QueryString获取,而POST方式可以用Request.Form获取,两种方式也都可以用Request.Params来获取.

      3.jQuery.getScript()方法

        通过HTTP GET请求载入并执行一个JavaScript文件.

          语法:

    $.getScript(url,callback)

          参数说明:

            url:待载入JS文件地址.

            callback(可选):成功载入后回调的函数.

      4.jQuery.getJSON()方法

        $.getJSON()方法用于加载JSON文件,参数和使用方法与$.getScript()方法的用法相同.

    3.jQuery.ajax()方法 

       $.ajax()方法是jQuery底层AJAX实现.简单易用的高层实现是$.get(),$.post()等.

        结构:

    $.ajax(options)

        该方法只有一个参数,参数以key/value的形式存在,所有参数都是可选的,常用参数见表:

    常用参数
    参数名称 参数类型 参数说明
    url string (默认:当前页地址)发送请求的地址
    type string (默认:"GET") 请求方式 ("POST"或"GET"),默认为"GET".注意:其它HTTP请求方法,如PUT和DELETE也可以使用,但仅部分浏览器支持.
    timeout number 设置请求超时时间(毫秒).此设置将覆盖全局设置.
    data object,string

    发送到服务器的数据.将自动转换为请求字符串格式.GET请求中将附加在URL后.查看processData选项说明以禁止此自动转换.

    必须为key/value格式.如果为数组,jQuery将自动为不同值对应同一个名称.

    datatype string

    预期服务器返回的数据类型.如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就会生成一

    个JavaScript对象,而script则会执行这个脚本.随后服务器端返回的数据会根据这个值解析后,传递给回调函数.

    beforeSend(XHR) function

    发送请求前可修改XMLhttpRequest对象的函数,如添加自定义HTTP头.XMLHttpRequest对象是唯一的参数.

    这是一个Ajax事件.如果返回false可以取消本次ajax请求.

    success function 请求成功后的回调函数,参数:由服务器端返回,并根据dataType参数进行处理后的数据;描述状态的字符串,Ajax事件.
    error function (默认:自动判断(xml或html))请求失败时调用此函数.有以下三个参数:XMLHttpRequest对象,错误信息,(可选)捕获的一场对象
    complete(XHR, TS) function 请求完成后回调函数(请求成功或失败之后均调用).参数XMLHttpRequest对象和一个描述成功请求类型的字符串.
    async boolean

    (默认:true)默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为false.

    注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行.

    cache boolean (默认:true,dataType为script和jsonp时默认为false) jQuery1.2新功能,设置为false将不缓存此页面.

    4.序列化元素

      1.serialize()方法:序列表表格内容为字符串. 能够将DOM元素内容序列化为字符串,用于Ajax请求.

      2.serializeArray()方法:将DOM元素序列化后,返回JSON对象格式的数据,需要使用插件或者第三方库进行字符串化操作.

      3.$.param()方法:serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化.

    5.jQuery中的Ajax全局事件

    Ajax全局事件中的方法
    方法名称 方法说明
    ajaxStart(callback) AJAX请求开始的时候
    ajaxStop(callback) AJAX请求结束后
    ajaxSend(callback) AJAX请求发送前执行的函数
    ajaxError(callback) AJAX请求发生错误时执行的函数
    ajaxSuccess(callback) AJAX请求成功时执行的函数
    ajaxComplete(callback) AJAX请求完成时执行的函数
     
     
     
  • 相关阅读:
    12月10日,小雪
    12月10日,小雪
    BUG
    Twenty Hours
    BUG
    07中华小姐大赛落幕 20岁佳丽曾光夺冠
    Twenty Hours
    jeecg 页面标签规则
    jeecg导入备份
    jeecg查询分页
  • 原文地址:https://www.cnblogs.com/sailortian/p/3586875.html
Copyright © 2011-2022 走看看