jquery02

mac2022-06-30  20

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


jQuery的ajax的实现,底层是通过XmlHttpRequest来完成异步交互的。jQuery中用于完成ajax请求的方法共有6个,这6个方法分为三层:   最底层的是 $.ajax()方法,该方法内部调用了XmlHttpRequest来完成异步交互。   中间层的方法有 $.get() 、$.post() 、load()方法,他们的实现,是调用了 $.ajax()方法。   最高层的是 $.getJSON() 与 $.getScript()方法 ,他们的内部调用了中间层的方法。详细:1.jQuery.ajax(opotions)   该方法是jQuery底层 AJAX 实现, $.ajax() 返回其创建的 XmlHttpRequest对象。大多数情况下不用直接操作该函数的,除非需要操作不常用的选项,以获得更多的灵活性。   $.ajax()它的参数为一个可选的对象。该对象具有较多的属性,常用的参数介绍如下:(所有的参数都是可选的)     type: 请求的提交的方式。默认的是 "GET"。     url(String): 请求的目标地址。     dataType: 服务器返回值的类型。常用的值有:     "xml" :返回XML文档,可用jQuery处理     "html":返回纯文本html信息,所包含的<script/>标签会在插入dom时执行     "script":返回纯文本javaScript代码     "json":返回json格式     async(boolean):默认设置下,所有请求为异步请求,如果需要发送同步请求,请将此选项设置为false.  注意:同步请求将锁住浏览器,用户其他操作必须等待其请求完成才可以执行

              ........... 等等..

注意.ajax有一个特点:当后台程序代码出现错误的时候,可以帮助我们进行响应。

2.load(url,data,callback) (很少使用) $(selector).load(URL,data,callback);   load() 方法从服务器加载数据,并把返回的数据放入被选元素中。   默认使用了get方式提交-但是传参数的时候转换成了post   特点:专门加载远程的html代码 参数:   url(String): 待装入html网页网址   data(map): (可选)待发送key/value参数   callback(function): (可选) 载入成功时回调函数

 

3.jQuery.get(url,data,callback,type) jQuery.get(url,[data],[callback],[type])   这是一个简单的get请求功能以取代复杂的 $.ajax,请求成功时可调用回调函数,如果需要在出错时执行函数,请使用 $.ajax 参数:   url(String): 发送请求地址   data(map): (可选)待发送key/value参数   callback(function): (可选) 载入成功时回调函数   type(String): (可选)返回内容格式,xml,html,script,json,text,_default注意:get请求提交会乱码 get方法可以替代.ajax()和.getJSON()和.getScript()

4.jQuery.post(url,data,callback,type)   jQuery.post(url,[data],[callback],[type])   这是一个简单的post请求功能以取代复杂的 $.ajax,请求成功时可调用回调函数,如果需要在出错时执行函数,请使用 $.ajax 参数:   url(String): 发送请求地址   data(map): (可选)待发送key/value参数   callback(function): (可选) 载入成功时回调函数   type(String): (可选)返回内容格式,xml,html,script,json,text,_default注意:post方法和get方法提交有什么区别呢?  post可以传递中文,post隐式提交,在地址栏不显示请求的参数信息  get中文会乱码,get显式提交,在地址上显示了请求的参数信息。  因此表单中有中文的话,就用post提交,这样安全些  post请求会比get要慢一些,因为底层有一个数据封装的步骤,把表单里的数据封装到一个对象里面传到后台,后台自动去解析。  get请求传递的参数的数据量,比post小很多。。。。  get只有几k,几百k,post有几兆,几百兆  因此表单上传文件必须用post比较好

总结:post 传中文 安全(隐式) 传递的数据量大 慢 (推荐使用!) get 中文乱码 不安全 传递的数据量小 快5.jQuery.getJSON(url,data,callback) jQuery.getJSON(url,[data],[callback])   以get方式提交一个请求,返回的必须是一个json 参数:   url(String): 发送请求的地址   data(map): (可选)待发送key/value参数 --这个参数就是要你在后台接收的哟   callback(function): (可选) 载入成功时回调函数

6.jQuery.getScript(url,callback)   jQuery.getScript(url,[callback])   以get方式提交一个请求,返回的必须是一个script 参数:   url(String): 待载入js文件地址   callback(function): (可选) 载入成功时回调函数


重点学习 .ajax方法 和 .post方法 ajax一个参数 post四个参数先学习.ajax方法  $.ajax({ 各式各样的属性 }) // $.ajax({})

常用的参数:$.ajax({   1. url:'jsp/接口/servlet'   2. type:'post/get,   3. dataType:'json/script/xml'   4. function(data,type){     //对ajax返回的原始数据进行预处理     return data //返回处理后的数据             }   5. success:function(){}:请求成功后的回调函数。参数:由服务器返回,并根据dataType参数进行处理后的数据   6. error:function(){} :请求失败的回调函数。   7.function(data,textStatus){     //data 可能是xmlDoc,jsonObj,html,text等等...     this; //调用本次ajax请求是传递的options参数           }});eg:保存数据到服务器,成功时显示信息$.ajax({   type:'post',   url:'xxxxxx',   data:'agentId=' + agentId, //data要发送到后台的数据   success:function(msg){     alert("DATA Saved:"+msg);       }});

 


完整列子:.$ajax 验证账号是否是正确的 //前台<head> <script type="text/javascript" src="js/jquery.sj"></script></script type="text/java">   $(function(){     $("#loginName").bind("blur",function(){    //先得到输入框的对象,做一个失去焦点的事件     var v_loginName=$(this).val()     $.ajax({       type:'post',       url:'checkName',       // data:'loginName='+$(this).val(),          //向后台传入参数, $(this).val得到当前对象账号的值       data:'loginName='+v_loginName,           //或者是在前面定义一个变量       dataType:'json',       success:function(data){ //当响应一切正常时执行success的回调方法         //alert(data)         if(!data){             $("#message").text("对不起,这个账号已经使用请更换。")             $("#message").attr("color","red")         }else{             $("#message").text("恭喜你这个账号可以使用")             $("#message").attr("color","green")     }   },     //这里的逗号说明success的结束         error:function(){        //当程序出现错误后执行error的回调方法              //alert("错误,请稍后再试")                     $("#message").text("错误啦,请稍后再试!")          }       })     }) }) </script></head><body>         账号 <input type="text" name="loginName" id="loginName"></body> //后台   1.写一个checkName方法 url:'checkName',   2.后台接收这个参数loginName data:'loginName='+v_loginName   3.一些处理   4.返回 success:function(data){ 前台接收


重点学习 .ajax方法 和 .post方法学习.post方法

  .post一共有四个参数  jQuery.post(url,[data],[callback],[type])         url, 参数,回调方法, 类型

eg:   $.post('<@spring.url "/agent/getSubPackageList" />', //第一个参数url       {agentId : row.agentId,}, //第二个参数data       function(dat) { //第三个参数 回调函数         if (dat.succ) {           $('#subPackageIds').prev('span').hide();           $('#subPackageIds').next('.textbox').show();         $('#subPackageIds').combobox({             url : '<@spring.url "/agent/getSubPackage" />?packageId='+data.packageId,             value : dat.entity          });         } else             $.messager.alert('错误', data.errorObj.message, 'error');         },         'json');   //第四个参数 type

 


jQuery.each-----数组与对象的访问 jQuery.each(obj,callback) 通用遍历方法,可用于遍历对象和数组 不同于jquery 对象的$().each()方法,此方法可以用于任何对象。 回调函数拥有2个参数:.each(obj,callback)             第一个为对象的成员或者是数组的索引,第二个为对应变量或内容 如果需要退出each循环,可以使用回调函数返回false,其他的返回值将被忽略。eg:遍历数组,同时使用元素索引和内容   $.each([0,1,2],functiion(i,n){ //i表示当前循环的索引 n表示节点元素,也就是被循环的索引值     alert("~~~~~~~~"+i+"----------"+n);   });eg:遍历对象,同时使用成员名称和变量内容   $.each({name:"李银河","lang":java},function(i,n){     alert("名称:"+i+"值"+n)   });通常写在回调函数里面   function(data){     $.each(data,function(index,node){       //对从服务器返回回来的数据,进行遍历....     })   }eg:  form2Json: function(id) {     var arr = $("#" + id).serializeArray()     var jsonStr = "";     jsonStr += '{';     $.each(arr, function(i, field) { //i表示当前循环的索引 field表示节点元素,也就是被循环的 索引值!       if (field.value) {          jsonStr += '"' + field.name + '":"' + field.value + '",'         }       });

 


在js中,可以不写分号。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/PinkPink/p/8385690.html

相关资源:jquery.upload.js
最新回复(0)