Ajax JS 中的Ajax jquery中的Ajax

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

1、Ajax的优势:

  不需要插件的支持,能被大多数主流浏览器支持

  优秀的用户体验,不用刷新整个页面,就能更新数据

  提高web程序的性能,通过XMLHttpRequest对象向服务端提交所需的数据

  

2、Ajax的核心: XMLHttpRequest 对象, 发送异步请求、接收相应 、执行回调 都是通过它来进行。

3 ajax 请求过程:(JS)

  创建 XMLHttpRequest 对象、连接服务器、发送请求、接收响应数据;

1、创建XMLHttpRequest对象:

var xhr = function createXhr(){
                  if(window.ActiveXObject){ //IE5 IE6
                    return new window.ActiveXObject("Microsoft.XMLHttp");
                  }else if(window.XMLHttpRequest){  //IE7 以上 及 其他浏览器
                    return new XMLHttpRequest();
                  }else{
                    alert("您的浏览器不兼容,换一个");
                    return null;
                  }
                }

2、准备向服务端发请求,open()

          if(xhr!=null){
              //如果实例化成功,就调用open()方法,就开始准备向服务器发送请求
            xhr.open("post", url, true);
            /*三个参数:第一个是发送请求的类型,POST 和GET 两种
                      第二个是url的地址,(地址也可以是静态文件,xml文件)
                      第三个,是否是异步,true是 异步。false 是同步*/
          }

3、回调函数的处理(数据接收的处理)

xhr.onreadystatechange = processResponse; //指定响应函数  

            function processResponse() { 

            }

4、发送,

xhr.send();  //

注意几个书写的顺序:

 var xhr = createXMLHttpRequest();
      xhr.open("GET","test.jsp",true);
      xhr.OnreadyStateChange = function(){
          if(xhr.readyState==4&&xhr.status==200){
            //通过responseXML和responeText来获取信息
            var doc = xhr.responseXML;//responseXML只能获取XML格式
            (var doc = xhr.responseText)

          }
      }
      xhr.send();

2、jquery中AJax的实现

1、load();直接为包装器创建,

$("#content").load(url,[data](数据,可省略),[callback](回调函数,可省略));如果有第二个,按照POST 方式发送,如果没有 用 GET 方式发送。

//表示将01 html文件中 id是 test的元素 加载到 content中 $(‘#content‘).load("01.html #test");

                

2、$.get();

$.get(url,[data](数据,可省略),[callback](回调函数,可省略));

3、$.getJson()

4、$.post()

5、$.ajax()  $.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()

一、$.ajax的一般格式

      $.ajax({
                   url: "http://www.hzhuti.com",    //请求的url地址
                   dataType: "json",   //返回格式为json
                   async: true, //请求是否异步,默认为异步,这也是ajax重要特性
                   data: { "id": "value" },    //参数值
                  type: "GET",   //请求方式
                  beforeSend: function() {
                      //请求前的处理
                  },
                  success: function(req) {
                      //请求成功时处理
                  },
                  complete: function() {
                      //请求完成的处理
                  },
                  error: function() {
                      //请求出错处理
                  }
        });

二、$.ajax的参数描述

参数 描述

url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType
可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script 或 html)。

三、一些:

//1.$.ajax带json数据的异步请求
var aj = $.ajax( {
    url:‘productManager_reverseUpdate‘,// 跳转到 action
    data:{
             selRollBack : selRollBack,
             selOperatorsCode : selOperatorsCode,
             PROVINCECODE : PROVINCECODE,
             pass2 : pass2
    },
    type:‘post‘,
    cache:false,
    dataType:‘json‘,
    success:function(data) {
        if(data.msg =="true" ){
            // view("修改成功!");
            alert("修改成功!");
            window.location.reload();
        }else{
            view(data.msg);
        }
     },
     error : function() {
          // view("异常!");
          alert("异常!");
     }
});

在提交中,如果有表单,把表单添加到参数data中,有很多,很麻烦,jquery 提供了 serialize()方法,能将DOM元素序列化为一个字符串
//2.$.ajax序列化表格内容为字符串的异步请求
function noTips(){
    var formParam = $("#form1").serialize();//序列化表格内容为字符串
    $.ajax({
        type:‘post‘,
        url:‘Notice_noTipsNotice‘,
        data:formParam,
        cache:false,
        dataType:‘json‘,
        success:function(data){
        }
    });
}  

//3.$.ajax拼接url的异步请求
var yz=$.ajax({
     type:‘post‘,
     url:‘validatePwd2_checkPwd2?password2=‘+password2,
     data:{},
     cache:false,
     dataType:‘json‘,
     success:function(data){
          if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间
          {
               textPassword2.html("<font color=‘red‘>业务密码不正确!</font>");
               $("#validatePassword2").val("pwd2Error");
               checkPassword2 = false;
               return;
           }
      },
      error:function(){}
}); 

//4.$.ajax拼接data的异步请求
$.ajax({
    url:‘<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action‘,
    type:‘post‘,
    data:‘merName=‘+values,
    async : false, //默认为true 异步
    error:function(){
       alert(‘error‘);
    },
    success:function(data){
       $("#"+divs).html(data);
    }
});

JQuery 中设置AJAX 的全局函数

var $doc = $(document);
$doc.ajaxComplete(function(event,xhr,options){
    var str_timeout = xhr.responseText;
    if ("session_timeout" === str_timeout) {
        window.top.location = rootPath + "/system/login/login.jsp";
    }
});

ajaxStart


在jQuery AJAX函数或命令发起时,但在XHR实例被创建之前


类型被设置为ajaxStart的全局回调信息对象


ajaxSend


在XHR实例被创建之后,但在XHR实例被发送给服务器之前


类型被设置为ajaxSend的全局回调信息对象;XHR实例;$.ajax()函数使用的属性


ajaxSuccess


在请求已从服务器返回之后,并且响应包含成功状态码


类型被设置为ajaxSuccess的全局回调信息对象;XHR实例;$.ajax()函数使用的属性


ajaxError


在请求已从服务器返回之后,并且响应包含失败状态码


类型被设置为ajaxError的全局回调信息对象;XHR实例;$.ajax()函数使用的属性;被XHR实例返回的异常对象(如果有的话)


ajaxComplete


在请求已从服务器返回之后,并且在任何已声名的ajaxSuccess或ajaxError回调函数已被调用之后


类型被设置为ajaxComplete的全局回调信息对象;XHR实例;$.ajax()函数使用的属性


ajaxStop


在所有其他AJAX处理完成以及任何其他适用的全局回调函数已被调用之后


类型被设置为ajaxStop的全局回调信息对象    

如果在jQuery.ajax()jQuery.ajaxSetup()中将选项参数global设为false,可以禁止该AJAX请求触发全局的AJAX事件。

时间: 2024-11-14 07:17:30

Ajax JS 中的Ajax jquery中的Ajax的相关文章

js原生方式实现jquery中的append()方法

一.在使用jquery时, append() 方法在被选元素的结尾(仍然在内部)插入指定内容 使用方法:$(selector).append(content),content为必需的.规定要插入的内容(可包含 HTML 标签) 二.在使用原生js时,使用appendChild() 方法可向节点的子节点列表的末尾添加新的子节点, 用法:parent.appendChild(child); child没有引号包住,child参数,是node类型.给一个空文档里面动态创建元素,要使用document.

浅析Ajax跨域原理及JQuery中的实现分析

AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器上,Web 应用程序还有什么用处呢?如果需要从多个第三方服务器收集数据时,又该怎么办?  一.关于ajax跨域的思考 1.Ajax为什么不能跨域?到底是卡在哪个环节了?(下面项目中具体说,这里先说下结论). Ajax其实

js中的原生Ajax和JQuery中的Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). js中的Ajax: 参数介绍: open(String method,String url,boolean asynch);        准备请求:             url:            get/post            true/false:            true:异步            false:同步 readyState  

jQuery中的Ajax学习笔记

前段时间学习了<锋利的jQuery第六章>jQuery与Ajax应用,现做如下笔记: 我们先来了解一下,什么是Ajax呢?Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),它并不是指一种单一的技术,而是有机地利用了一系列交互式网页应用相关的技术所形成的结合体.简短地说,在不重载整个页面的情况下,Ajax通过后台加载数据,并在网页上进行显示. 我们来简要回顾一下Ajax.早在1998年,微软就引入了一个ActiveX控件,从而能

jquery中read与js中onload区别

在JavaScript中,onload函数是最经常使用的,几乎涉及到JavaScript的童鞋都少不了要接触它.这个函数的作用就是等待网页完全装载完了以后再去执行代码块内的语句,因为按照文档流的执行顺序,通常用于头部加载JavaScript的时候需要用到. 1 2 3 window.onload = function(){     // 当网页加载完成后执行这里的代码块 }; 而在jQuery中也有一个对应的函数,即等待网页加载完后执行代码块 1 2 3 $(document).ready(fu

JQuery中的load()、$.get()和$.post()详解 (转)

load() 1.载入HTML文档 load()方法是jQuery中最为简单和常用的Ajax方法,能载入远程HTML代码并插入DOM中. 它的结构为: load(url [,data][,callback]) 参数名称 类型 说明 url String 请求HTML页面的URL地址 data(可选) Object 发送至服务器的key/value数据 callback(可选) Function 请求完成时的回调函数,无论请求成功或失败 首先创建一个test.html文件,用于被load()方法加

前端Ajax/JS/HTML+后端SpringMVC(一)

1.JSON 1.1. 转发或重定向的不足 对于发出的请求,最终需要给出"成功/失败"的结果的话,转发的方式来处理,给用户的体验就非常不好!即使用户填错了一项数据不达标,都需要回退至此前的页面重新填写,而原本填写的其它数据可能需要再填写一次! 并且,当用户发出请求后,如果是转发或者重定向,一定会发生页面的跳转!无法在页面中局部来提示信息. 从服务端的角度出来,其实,还存在浪费流量的问题!如果只是为了表达"成功/失败",也许只需要1个"1/0"就可

JQuery中的$符号的作用----网摘

jQuery中的“$” 在jQuery中,最频繁使用的符号“$”.$提供了各种各样丰富的功能, 包括选择页面中的一个或是一类元素,作为功能函数的前缀,window.onload的 完善,创建页面的DOM节点等... 1.选择器 在CSS中选择器的作用是选择页面中某一类(类别选择器)元素或者某一个元素(ID选择器) ,而jQuery中的"$"作为选择器,同样是选择某一类或某一类元素,只不过jQuery提供了 更多更全面的选择方式.并且为用户处理了浏览器的兼容问题 CSS可以通过如下代码来

jQuery中美元符号&quot;$&quot;的用法

jQuery中的“$” 在jQuery中,最频繁使用的符号“$”.$提供了各种各样丰富的功能, 包括选择页面中的一个或是一类元素,作为功能函数的前缀,window.onload的 完善,创建页面的DOM节点等... 1.选择器 在CSS中选择器的作用是选择页面中某一类(类别选择器)元素或者某一个元素(ID选择器) ,而jQuery中的"$"作为选择器,同样是选择某一类或某一类元素,只不过jQuery提供了 更多更全面的选择方式.并且为用户处理了浏览器的兼容问题 CSS可以通过如下代码来