原生和jQuery的ajax用法详解

 更新时间:2017年01月23日 08:46:26   投稿:mrr  
Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax。这篇文章主要介绍了原生和jQuery的ajax用法,需要的朋友参考下吧

Ajax简介

Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 。

AJAX的缺陷

AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。

AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。

对流媒体的支持没有FLASH好。

一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。

form数据的序列化:

 $('#submit').click(function(){
  $('#form').serialize();    //会根据input里面的name,把数据序列化成字符串;eg:name=yang
  $('#form').serializeArray();  //会根据input里面的name,把数据序列化成数组;eg:[object]
  //注意:没有name会获取不到值
  //下面两种不是jQuery的方法
  JSON.parse()  //json字符串转化为json对象
  JSON.stringify()  //json对象转化为json字符串
});

jQuery的ajax方法:

$.ajax({
  url:'/comm/test1.php',
  type:'POST', //GET
  async:true,  //或false,是否异步
  data:{
    name:'yang',age:25
  },
  timeout:5000,  //超时时间
  dataType:'json',  //返回的数据格式:json/xml/html/script/jsonp/text
  beforeSend:function(xhr){
    console.log(xhr)
    console.log('发送前')
  },
  success:function(data,textStatus,jqXHR){
    console.log(data)
    console.log(textStatus)
    console.log(jqXHR)
  },
  error:function(xhr,textStatus){
    console.log('错误')
    console.log(xhr)
    console.log(textStatus)
  },
  complete:function(){
    console.log('结束')
  }
})

原生的ajax方法:

$('#send').click(function(){
  //请求的5个阶段,对应readyState的值
    //0: 未初始化,send方法未调用;
    //1: 正在发送请求,send方法已调用;
    //2: 请求发送完毕,send方法执行完毕;
    //3: 正在解析响应内容;
    //4: 响应内容解析完毕;
  var data = 'name=yang';
  var xhr = new XMLHttpRequest();    //创建一个ajax对象
  xhr.onreadystatechange = function(event){  //对ajax对象进行监听
    if(xhr.readyState == 4){  //4表示解析完毕
      if(xhr.status == 200){  //200为正常返回
        console.log(xhr)
      }
    }
  };
  xhr.open('POST','url',true);  //建立连接,参数一:发送方式,二:请求地址,三:是否异步,true为异步
  xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');  //可有可无
  xhr.send(data);    //发送
});

相关文章

  • jQuery Ajax 全解析

    jQuery Ajax 全解析

    本文地址: jQuery Ajax 全解析 本文作者:QLeelulu
    2009-02-02
  • jQuery源码分析之jQuery中的循环技巧详解

    jQuery源码分析之jQuery中的循环技巧详解

    这篇文章主要介绍了jQuery源码中的循环技巧,包括各类选择、判断、遍历等等操作,非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • jquery实现点击TreeView文本父节点展开/折叠子节点

    jquery实现点击TreeView文本父节点展开/折叠子节点

    今天客户提出要点击菜单(TreeView实现的)的父级节点时,展开节点,很多新手朋友可能对此会很陌生,接下来介绍解决方法,感兴趣的朋友可以了解下
    2013-01-01
  • 基于jquery实现的树形菜单效果代码

    基于jquery实现的树形菜单效果代码

    这篇文章主要介绍了基于jquery实现的树形菜单效果代码,实例分析了jquery基于鼠标事件动态改变页面元素属性的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • jQuery幻灯片特效代码分享 鼠标滑过按钮时切换(2)

    jQuery幻灯片特效代码分享 鼠标滑过按钮时切换(2)

    本文实例讲述了jQuery实现时尚漂亮的幻灯片特效,基本能满足你在网页上使用幻灯片(焦点图)效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • Jquery技巧(必须掌握)

    Jquery技巧(必须掌握)

    这篇文章主要介绍了Jquery技巧(必须掌握)的相关资料,需要的朋友可以参考下
    2016-03-03
  • 基于jquery编写的横向自适应幻灯片切换特效的实例代码

    基于jquery编写的横向自适应幻灯片切换特效的实例代码

    全屏自适应jquery焦点图切换特效,在IE6这个浏览器兼容性问题上得到了和谐,兼容IE6,适用浏览器:IE6、IE7、IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.相关代码
    2013-08-08
  • 利用jQuery实现打字机字幕效果实例代码

    利用jQuery实现打字机字幕效果实例代码

    这篇文章给大家介绍了如何利用jQuery来实现打字机字幕效果,文章介绍了实现原理和代码,实现以后的效果还是不错,有需要的可以参考借鉴。
    2016-09-09
  • JQuery球队选择实例

    JQuery球队选择实例

    这篇文章主要介绍了JQuery球队选择实现方法,实例分析了jQuery中鼠标事件与页面元素相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • jQuery横向擦除焦点图特效代码分享

    jQuery横向擦除焦点图特效代码分享

    这篇文章主要介绍了jQuery横向擦除焦点图特效,一个具有自己特色的焦点图会吸引用户的注意力,让用户产生浏览网站的兴趣至关重要,现在小编推荐给大家一款特别棒的焦点图,感兴趣的小伙伴可以参考下。
    2015-09-09

最新评论