A-A+

js与jquery ajax使用方法及对比分析

2016年01月09日 前端设计 暂无评论 阅读 5 views 次

ajax我们在没有jquery插件之前都是使用原生的ajax了,但有了jquery插件之后我们就直接使用了jquery ajax了,下面我们一起来看看js与jquery ajax使用方法及对比分析吧。

这篇博文,是我不知道什么是ajax到熟练运用ajax的一个历程。

一,最原始的方式来运用ajax

  1. <SCRIPT language=javascript>    
  2. var xmlHttp;    
  3.     
  4. function createXMLHttpRequest() {    
  5.     
  6. if (window.ActiveXObject) {    
  7. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");    
  8. }else if (window.XMLHttpRequest) {    
  9. xmlHttp = new XMLHttpRequest();    
  10. }    
  11. }    
  12.     
  13. //定义了一个ajax的入口函数,供用view层用户调用    
  14.     
  15. function show_type(type_id) {    
  16. // alert(id);    
  17. createXMLHttpRequest();    
  18. var url = "../ajax/shop_type_status.php?id="+type_id+"&time="+Math.random();    
  19. xmlHttp.open("GET", url, true);    
  20.     
  21. xmlHttp.onreadystatechange = function(){ show_back();}    
  22. xmlHttp.send(null);    
  23. }    
  24.     
  25. //回调函数,将从调用的php文件中取得的数据,反还给用户    
  26.     
  27. function show_back() {    
  28.     
  29. if (xmlHttp.readyState == 4) {    
  30. if (xmlHttp.status == 200) {    
  31. //document.getElementById('cat_id').value = id;    
  32. document.getElementById('type_status').innerHTML = xmlHttp.responseText;    
  33. }    
  34. }    
  35. }    
  36. </SCRIPT>  

个人分析:这种方法挺好的,简单灵活,但是有一点不好,就是冗余代码比较多,不利于后期维护。

二,js端封装的ajaxrequest

这个东西,对于习惯了用javascript的人来说,是一个不错的选择,它是装上面所说的那种方法简单的封装了一下,做了统一的调用。感觉不错,代码挺多的就不贴出来了,大家可以到google搜ajaxrequest。

ajaxrequest.js里面有一个这个方法这个方法是供view端调用的接口,接口可以有多个,根据情况自己加.

  1. function ajax_action_fun(url,fun) {    
  2. var ajax=new AJAXRequest;    
  3. ajax.get(    
  4. url,    
  5. function(obj){alert(obj.responseText);fun()}    
  6. );    
  7. }    
  8.     
  9. //html里面调用这个接口    
  10. get_shop_son_list   //是回调后执行的方法名    
  11.     
  12. ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);    
  13.     
  14. function get_shop_list(resValue){    
  15. //这里就是你要的操作    
  16. }   
  17. 个人分析:它弥补了第一种方法的不足,统一调用接口,可以设置回调函数,缺点如果有的话,不在ajaxrequest本身而在于javascript,举个例子吧  
  18. javascript:如果我想调用ajax_action_fun这个方法我要在html里加个东西  
  19. <a class="showshop" href='javascript:' onclick=ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);>显示店</a>  

jquery:用它可以尽量把js和html分开,这对于后期维护是很帮助的,会节省很多时间,例如,全站换html;

$(".showshop").bind("click", {url: "../ajax/shop_ajax.php?type=1",function:get_shop_list}, ajax_action_fun);

这样就可以不用在html里面写onclick事件了

三,jquery的ajax

  1. $.ajax({    
  2.    type: "POST",    
  3.    url: "test.php",           //调用的php文件    
  4.    data: "name=zhang",    
  5.    success: function(msg){            //回调函数    
  6.      alert( "Data Saved: " + msg );       //这里是操作    
  7.    }    
  8.  });   

调用test.php文件,传个参数,data是返回的数据.

  1. $.post("test.php", { name: "zhang"},    
  2.    function(data){    
  3.      alert("Data Loaded: " + data);    
  4.    });   

现在我基本上用jquery了,哈哈.

给我留言