js jquery ajax的几种用法总结(及优缺点介绍)

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

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

  

复制代码 代码如下:

  <SCRIPT language=javascript>

  var xmlHttp;

  function createXMLHttpRequest() {

  if (window.ActiveXObject) {

  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

  }else if (window.XMLHttpRequest) {

  xmlHttp = new XMLHttpRequest();

  }

  }

  //定义了一个ajax的入口函数,供用view层用户调用

  function show_type(type_id) {

  // alert(id);

  createXMLHttpRequest();

  var url = "../ajax/shop_type_status.php?id="+type_id+"&time="+Math.random();

  xmlHttp.open("GET", url, true);

  xmlHttp.onreadystatechange = function(){ show_back();}

  xmlHttp.send(null);

  }

  //回调函数,将从调用的php文件中取得的数据,反还给用户

  function show_back() {

  if (xmlHttp.readyState == 4) {

  if (xmlHttp.status == 200) {

  //document.getElementById('cat_id').value = id;

  document.getElementById('type_status').innerHTML = xmlHttp.responseText;

  }

  }

  }

  </SCRIPT>

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

  二,js端封装的ajaxrequest

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

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

  

复制代码 代码如下:

  function ajax_action_fun(url,fun) {

  var ajax=new AJAXRequest;

  ajax.get(

  url,

  function(obj){alert(obj.responseText);fun()}

  );

  }

  //html里面调用这个接口

  get_shop_son_list   //是回调后执行的方法名

  ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);

  function get_shop_list(resValue){

  //这里就是你要的操作

  }

  个人分析:它弥补了第一种方法的不足,统一调用接口,可以设置回调函数,缺点如果有的话,不在ajaxrequest本身而在于javascript,举个例子吧

  javascript:如果我想调用ajax_action_fun这个方法我要在html里加个东西

  <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({

  type: "POST",

  url: "test.php",           //调用的php文件

  data: "name=zhang",

  success: function(msg){            //回调函数

  alert( "Data Saved: " + msg );       //这里是操作

  }

  });

  2)

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

  

复制代码 代码如下:

  $.post("test.php", { name: "zhang"},

  function(data){

  alert("Data Loaded: " + data);

  });