广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >jQuery中Ajax的详细介绍
  • 805
分享到

jQuery中Ajax的详细介绍

2024-04-02 19:04:59 805人浏览 薄情痞子
摘要

这篇文章主要介绍“Jquery中ajax的详细介绍”,在日常操作中,相信很多人在jQuery中Ajax的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery中A

这篇文章主要介绍“Jqueryajax的详细介绍”,在日常操作中,相信很多人在jQuery中Ajax的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery中Ajax的详细介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Ajax让用户页面丰富起来, 增强用户体验. Ajax是所有web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还是会因为每个开发人员而有所差异.jQuery提供一系列Ajax函数来帮助我们统一这种差异, 并且让调用Ajax更加简单.jQuery提供了几个用于发送Ajax请求的函数. 其中最核心也是最复杂的是jQuery.ajax(),所有的其他Ajax函数都是它的一个简化调用.当我们想要完全控制Ajax时可以使用此结果, 否则还是使用简化方法如get, post, load等更加方便. 所以jQuery.ajax( options ) 方法放到***一个介绍. 先来介绍最简单的load方法:

1. load( url, [data], [callback] )

Returns: jQuery包装集说明

load方法能够载入远程 html 文件代码并插入至 DOM 中。

默认使用 GET 方式, 如果传递了data参数则使用Post方式.

传递附加参数时自动转换为 POST 方式。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector", 默认的选择器是"body>*".

讲解:

load是最简单的Ajax函数, 但是使用具有局限性:

它主要用于直接返回HTML的Ajax接口

load是一个jQuery包装集方法,需要在jQuery包装集上调用,并且会将返回的HTML加载到对象中, 即使设置了回调函数也还是会加载。

不过不可否认load接口设计巧妙并且使用简单.下面通过示例来演示Load接口的使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title>jQuery Ajax - Load</title>      <script type="text/javascript" src="../scripts/jquery-1.3.2-vsdoc2.js"></script>      <script type="text/javascript">         $(function()          {              $("#btnAjaxGet").click(function(event)              {                  //发送Get请求                  $("#divResult").load("../data/AjaxGetMethod.aspx?param=btnAjaxGet_click" + "&timestamp=" + (new Date()).getTime());              });               $("#btnAjaxPost").click(function(event)              {                  //发送Post请求                  $("#divResult").load("../data/AjaxGetMethod.aspx", { "param": "btnAjaxPost_click" });              });               $("#btnAjaxCallBack").click(function(event)              {                  //发送Post请求, 返回后执行回调函数.                  $("#divResult").load("../data/AjaxGetMethod.aspx", { "param": "btnAjaxCallBack_click" }, function(responseText, textStatus, XMLHttpRequest)                  {                      responseText = " Add in the CallBack Function! <br/>" + responseText                      $("#divResult").html(responseText); //或者: $(this).html(responseText);                  });              });               $("#btnAjaxFiltHtml").click(function(event)              {                  //发送Get请求, 从结果中过滤掉 "鞍山" 这一项                  $("#divResult").load("../data/AjaxGetCityInfo.aspx?resultType=html" + "&timestamp=" + (new Date()).getTime() + " ul>li:not(:contains('鞍山'))");              });           })      </script>  </head> <body>     <button id="btnAjaxGet">使用Load执行Get请求</button><br />     <button id="btnAjaxPost">使用Load执行Post请求</button><br />     <button id="btnAjaxCallBack">使用带有回调函数的Load方法</button><br />     <button id="btnAjaxFiltHtml">使用selector过滤返回的HTML内容</button>     <br />     <div id="divResult"></div> </body> </html>

提示:我们要时刻注意浏览器缓存, 当使用GET方式时要添加时间戳参数 (net Date()).getTime() 来保证每次发送的URL不同, 可以避免浏览器缓存.

提示: 当在url参数后面添加了一个空格, 比如" "的时候, 会出现"无法识别符号"的错误, 请求还是能正常发送. 但是无法加载HTML到DOM. 删除后问题解决.

2.jQuery.get( url, [data], [callback], [type] )

Returns: XMLHttpRequest说明:

通过远程 HTTP GET 请求载入信息。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

讲解:

此函数发送Get请求, 参数可以直接在url中拼接, 比如:

<script>     $.get("../data/AjaxGetMethod.aspx?param=btnAjaxGet_click");  </script>

或者通过data参数传递:

<script>     $.get("../data/AjaxGetMethod.aspx", { "param": "btnAjaxGet2_click" });  </script>

两种方式效果相同, data参数会自动添加到请求的url中如果url中的某个参数, 又通过data参数传递, 不会自动合并相同名称的参数.回调函数的签名如下:

<script> function (data, textStatus) {    // data could be xmlDoc, JSONObj, html, text, etc...    this; // the options for this ajax request  }  </script>

其中data是返回的数据, testStatus表示状态码, 可能是如下值:

"timeout","error","notmodified","success","parsererror"

在回调函数中的this是获取options对象的引用.有关options的各种说明, 请参见:

http://docs.jquery.com/Ajax/jQuery.ajax#options

type参数是指data数据的类型, 可能是下面的值:

"xml", "html", "script", "json", "jsonp", "text".

默认为"html".

jQuery.getJSON( url, [data], [callback] ) 方法就相当于 jQuery.get(url, [data],[callback], "json")

3. jQuery.getJSON( url, [data], [callback] )

Returns: XMLHttpRequest

相当于: jQuery.get(url, [data],[callback], "json")

说明:通过 HTTP GET 请求载入 JSON 数据。

在jQuery 1.2 中,您可以通过使用JSONP 形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

注意:此行以后的代码将在这个回调函数执行前执行。

讲解:getJSON函数仅仅将get函数的type参数设置为"JSON"而已. 在回调函数中获取的数据已经是按照JSON格式解析后的对象了:

<script>     $.getJSON("../data/AjaxGetCityInfo.aspx", { "resultType": "json" }, function(data, textStatus)      {            alert(data.length);            alert(data[0].CityName);      });  </script>

服务器端返回的字符串如下:

<script>     [{""pkid"":""0997"",""ProvinceId"":""XJ"",""CityName"":""阿克苏"",""CityNameEn"":""Akesu"",""PostCode"":""843000"",""isHotCity"":false},       {""pkid"":""0412"",""ProvinceId"":""LN"",""CityName"":""鞍山"",""CityNameEn"":""Anshan"",""PostCode"":""114000"",""isHotCity"":false}]  </script>

4.jQuery.getScript( url, [callback] )

Returns: XMLHttpRequest

相当于: jQuery.get(url, null, [callback], "script")

说明:通过 HTTP GET 请求载入并执行一个 JavaScript 文件。

jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。

讲解:

以前我使用dojo类库时官方默认的文件不支持跨域***导致我放弃使用dojo(虽然在网上找到了可以跨域的版本, 但是感觉不够***). 所以我特别对这个函数的核心实现和使用做了研究.

首先了解此函数的jQuery内部实现, 仍然使用get函数, jQuery所有的Ajax函数包括get***都是用的是jQuery.ajax(), getScript将传入值为"script"的type参数, ***在Ajax函数中对type为script的请求做了如下处理:

<script>     var head = document.getElementsByTagName("head")[0];      var script = document.createElement("script");      sscript.src = s.url;  </script>

上面的代码动态建立了一个script语句块, 并且将其加入到head中:

<script> head.appendChild(script);  </script>

当脚本加载完毕后, 再从head中删除:

<script>     // Handle Script loading                  if ( !jsonp ) {                      var done = false;                       // Attach handlers for all browsers                      scriptscript.onload = script.onreadystatechange = function(){                          if ( !done && (!this.readyState ||                                  this.readyState == "loaded" || this.readyState == "complete") ) {                              done = true;                              success();                              complete();                               // Handle memory leak in IE                              scriptscript.onload = script.onreadystatechange = null;                              head.removeChild( script );                          }                      };                  }  </script>

5. jQuery.post( url, [data], [callback], [type] )

Returns: XMLHttpRequest

说明:通过远程 HTTP POST 请求载入信息。

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

讲解:具体用法和get相同, 只是提交方式由"GET"改为"POST".

6. jQuery.ajax( options )

Returns: XMLHttpRequest

说明:通过 HTTP 请求加载远程数据。

jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。

$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。

注意:如果dataType设置为"script",那么所有的远程(不在同一域名下)的POST请求都将转化为GET请求。(因为将使用DOM的script标签来加载)

jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。

讲解:

这是jQuery中Ajax的核心函数, 上面所有的发送Ajax请求的函数内部***都会调用此函数.options参数支持很多参数, 使用这些参数可以完全控制ajax请求. 在Ajax回调函数中的this对象也是options对象.

因为平时使用最多的还是简化了的get和post函数, 所以在此不对options参数做详细讲解了. options参数文档请见:http://docs.jquery.com/Ajax/jQuery.ajax#options

本文介绍如何使用jquery实现Ajax功能. 用于发送Ajax请求的相关函数如load, get, getJSON和post这些渐变Ajax方法, 对于核心的ajax 方法没有过多介绍, 主要是通过配置复杂的参数实现完全控制Ajax请求。

到此,关于“jQuery中Ajax的详细介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: jQuery中Ajax的详细介绍

本文链接: https://www.lsjlt.com/news/74150.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • jQuery中Ajax的详细介绍
    这篇文章主要介绍“jQuery中Ajax的详细介绍”,在日常操作中,相信很多人在jQuery中Ajax的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery中A...
    99+
    2022-10-19
  • Jquery中$.ajax()方法参数的详细介绍
    这篇文章主要讲解了“Jquery中$.ajax()方法参数的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Jquery中$.ajax()方法参数的详...
    99+
    2022-10-19
  • jquery中的ajax同步和异步的详细介绍
    本篇内容主要讲解“jquery中的ajax同步和异步的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery中的ajax同步和异步的详细介绍”吧!之...
    99+
    2022-10-19
  • 介绍jQuery中的ajax
    本篇内容主要讲解“介绍jQuery中的ajax”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“介绍jQuery中的ajax”吧!前言学习JavaScript的同学都知道, AJAX (async ...
    99+
    2023-06-07
  • $.ajax()方法参数的详细介绍
    本篇内容主要讲解“$.ajax()方法参数的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“$.ajax()方法参数的详细介绍”吧!会灵活的运用ajax的...
    99+
    2022-10-19
  • JQuery中$.ajax()方法参数介绍
    这篇文章主要讲解了“JQuery中$.ajax()方法参数介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JQuery中$.ajax()方法参数介绍”吧!...
    99+
    2022-10-19
  • ajax数据传输方式详细介绍
    这篇文章主要介绍“ajax数据传输方式详细介绍”,在日常操作中,相信很多人在ajax数据传输方式详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax数据传输方式详细...
    99+
    2022-10-19
  • jQuery返回定位插件的详细介绍
    本篇内容介绍了“jQuery返回定位插件的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、jQu...
    99+
    2022-10-19
  • JavaScript、Ajax、jQuery三者的关系介绍
    本篇内容介绍了“JavaScript、Ajax、jQuery三者的关系介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,...
    99+
    2022-10-19
  • Flink的详细介绍
    这篇文章主要介绍“Flink的详细介绍”,在日常操作中,相信很多人在Flink的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flink的详细介绍”的疑惑有所帮助!接...
    99+
    2022-10-19
  • rabbitMQ的详细介绍
    1.概述 RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。...
    99+
    2023-09-05
    rabbitmq npm linux java 分布式
  • Python中栈的详细介绍
    目录1、问题描述2、解决方案3、结语本文转自公众号:"算法与编程之美" 1、问题描述 Python中数据类型有列表,元组,字典,队列,栈,树等等。像列表,元组这样的都是python内...
    99+
    2022-11-12
  • Android中的WebView详细介绍
    Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。 2. ...
    99+
    2022-06-06
    webview Android
  • Java中CompletableFuture 的详细介绍
    目录1.概述1.0 创建 CompletableFuture 的对象的工厂方法1.1 non-async 和 async 区别1.1.1 non-async 示例:注册 action...
    99+
    2022-11-13
  • OAuth2 详细介绍!
    目录 一、文章介绍 二、OAth2 2.1 简介 2.2 OAuth2  授权总体流程 2.3 四种授权模式 1.授权码模式 2.简化模式 3.密码模式 4. 客户端模式 2.4 OAuth2 标准接口 2.5 GitHub 授权登录 1...
    99+
    2023-09-15
    github java
  • springMVC详细介绍
    目录springMVC简介SpringMVC框架的优点第一个SpringMVC程序第一步:创建maven-web项目第二步:在pom.xml中添加依赖和插件第三步注册中央调度器第四步...
    99+
    2022-11-12
  • DockerCompose详细介绍
    目录一、Docker Compose的安装二、Docker Compose的基本使用三、Docker Compose的高级功能四、总结一、Docker Compose的安装 Dock...
    99+
    2023-05-16
    Docker Compose详解 Docker Compose
  • Linux中的LVM的详细介绍
    这篇文章主要介绍“Linux中的LVM的详细介绍”,在日常操作中,相信很多人在Linux中的LVM的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中的LVM的详细介绍”的疑惑有所帮助!接下来...
    99+
    2023-06-13
  • jquery中AJAX请求$.post方法的用法介绍
    本篇内容介绍了“jquery中AJAX请求$.post方法的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2022-10-19
  • SQL Server的详细介绍
    一、SQL Server的数据存储结构SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windo...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作