ajax 一次请求

系统 1830 0
在网站开发中经常会用到ajax,从执行效率上应该注意一些问题。例如:

 

ajax 一次请求

 

ajax 一次请求

 

 

原始是每次切换一次选项都会发起请求,这样会降低效率,我们可以将请求后的数据保存下来,然后下次根据请求地址直接获得请求内容,这样同url每次只需请求一次。

 

为此专门写一个JQ插件来做这件事就很有必要。插件具体内容:

 

 

[html]   view plain copy
 
  1. (function($){  
  2.     //存放請求過的地址  
  3.     var  _request_list  =  Array ();  
  4.      jQuery.ajaxOnce  =  function (options){  
  5.         //與jquery ajax參數保持一致  
  6.         var  settings  = {  
  7.             type: "POST",  
  8.             url: "",  
  9.             data: "",  
  10.             cache: true,  
  11.             async: true,  
  12.             success: ""  
  13.         }  
  14.         if(options){  
  15.             jQuery.extend(settings,options);  
  16.         }  
  17.         //回調  
  18.         var  _successfun  =  settings .success;  
  19.         //驗證是否已請求  
  20.         var  _msg  =  validReq (settings.url);  
  21.         if(_msg){  
  22.             if(typeof  _successfun  == "function"){  
  23.                 _successfun(_msg);  
  24.             }  
  25.         }else{  
  26.             //執行ajax請求  
  27.             jQuery.ajax({  
  28.                 type: settings.type,  
  29.                 url: settings.url,  
  30.                 data: settings.data,  
  31.                 cache: settings.cache,  
  32.                 async: settings.async,  
  33.                 success: function(msg){  
  34.                     addContent(settings.url,msg);  
  35.                     if(typeof  _successfun  == "function"){  
  36.                         _successfun(msg);  
  37.                     }  
  38.                 }  
  39.             })  
  40.         }  
  41.           
  42.         //檢查請求是否存在  
  43.         function validReq($parm_url){  
  44.             for($ _i  =  0 ;$_i  <   _request_list.length ; $_i++){  
  45.                 if(_request_list[$_i]['url'] == $parm_url){  
  46.                     return _request_list[$_i]['content'];  
  47.                 }  
  48.             }  
  49.             return false;  
  50.         }  
  51.           
  52.         //添加指定url內容  
  53.         function addContent($parm_url,$param_content){  
  54.              _combin  =  Array ();  
  55.             _combin['url'] = $parm_url;  
  56.             _combin['content'] = $param_content;  
  57.             _request_list.push(_combin);  
  58.         }  
  59.     }  
  60. })(jQuery)  

 

 

 

我只是将JQ自带的AJAX函数封装了下,具体调用和原来调用AJAX是一样的,只不过调用方式由jQuery.ajax换成了jQuery.ajaxOnce。

 

后续:

如果需要将数据长时间保存,可以利用本地存储将数据保存至本地,网上开源程序APC.js专门用来处理这种需求,并合理地利用不同浏览器的特性,详细内容: http://vquickphp.com/?a=blogview&id=33

 

ajax 一次请求


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论