摘要:观察函数和函数可以用来作为观察函数,我们可以使用观察函数的回调函数来做相应的处理。当请求开始且尚未进行其他传输时,会触发的回调函数。当最后一次活动请求终止时,则会执行通过注册的回调函数。
对于 jQuery 通过 Ajax 方式传递数据时,我们还可以在过程中进行一定的处理,以便达到我们的需求。
观察函数ajaxStart 和 ajaxStop 函数可以用来作为观察函数,我们可以使用观察函数的回调函数来做相应的处理。
当 Ajax 请求开始且尚未进行其他传输时,会触发 ajaxStart 的回调函数。
当最后一次活动请求终止时,则会执行通过 ajaxStop 注册的回调函数。
由于观察函数具备全局性,所以需要使用 $(document) 来调用。我们通过使用 Ajax 方法取得一个图片的例子来测试两个函数:
当前页面为:
同目录下的 test.html 内容为:
点击按钮后希望载入图像:
$("button").click(function() { $("div").load("test.html"); });
此时我们可以使用 ajaxStart 和 ajaxStop 函数来增加提示:
$(document).ajaxStart(function() {// alert("load a picture"); }).ajaxStop(function() { alert("show a picture"); }); $("button").click(function() { $("div").load("test.html"); });
此时点击按钮后,再图像载入前先提示 load a picture,载入后提示 show a picture。
错误处理最常用的方式是全局的 ajaxError 方法,以上例为例,如果我们像一个不存在的页面发送数据请求:
$(document).ajaxError(function() {// alert("load failed!"); }); $("button").click(function() { $("div").load("noexsited.html"); });
此时点击按钮后:
对于非 load 方法,还可以使用 fail 方法来连缀处理:
$("button").click(function() { $.get("noexsited.html", function(data) { }).fail(function(jqXHR) { alert("status is " + jqXHR.status); }); });JSONP
JSONP 即 JSON with padding,填充式 JSON,利用的是 标签可以跨域获取 Javascript 文件的思路,故可以跨域获取 JSON 数据。
JSONP 的格式是把标准 JSON 文件包装在一对圆括号中,圆括号又前置一个任意字符串。这个字符串,即所谓的 P,由请求数据的客户端来决定。
同样是上例的按钮,首先我们将外域页面 otherdomain.com/index.php 内容设置为:
我们使用特殊的占位符 ? 来实现跨域获取 JSON 数据:
$("button").click(function() { $.getJSON("otherdomain.com/index.php?callback=?", function(data) { console.log(data); }); });数据获取成功。
参考http://book.douban.com/subject/24669823/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/78181.html
摘要:在前一篇介绍的数据加载中的例子都是从静态的文件中取得数据,而更大的价值在于与后端服务器进行数据传递,动态地请求和发送数据。首先用方式请求数据方式点击标签后,当前页面为数据请求成功。 在前一篇介绍 jQuery Ajax 的数据加载中的例子都是从静态的文件中取得数据,而 Ajax 更大的价值在于与后端服务器进行数据传递,动态地请求和发送数据。 请求数据 我们可以使用 GET、POST...
摘要:同样将其绑定在按钮点击事件上查看结果为这里需要注意,如果文档内的格式错误,虽然不会报错,但是将无法执行回调函数。 Ajax 通俗来讲即不需要刷新页面即可从服务器或客户端上加载数据,当然这些数据的格式是多种多样的。 加载 HTML 我们通常使用加载 HTML 的方法来加载 HTML 片段,并插入到指定位置,假设当前页面为: load showImg(http://segmen...
摘要:事件对象是一种结构,它会在元素获得处理事件的机会时传递给调用的事件处理程序。事件对象的属性指的是事件目标,它将保存发生事件的目标元素。所以,接下来我们就要想办法改变事件过程来阻止这个行为。 在 《细说 jQuery 事件篇(三) - 事件传播》 中提到了事件冒泡可能造成的弊端,当时举了 mouseout 的例子,对于 mouseout 这个特殊情况,我们可以用 hover 方法来解决,...
摘要:是如何决定由哪个元素来处理事件的,以及又是如何优化处理这个问题的,这些都涉及到了事件传播。事件冒泡的弊端事件冒泡可能会导致意料之外的行为,例如在响应事件时,依旧是上例,当为最外层的添加一个事件。使用方法可以避免事件传播导致的问题。 Javascript 是如何决定由哪个元素来处理事件的,以及 jQuery 又是如何优化处理这个问题的,这些都涉及到了事件传播。 事件传播策略 当页面内...
摘要:添加全局函数所谓全局函数就是对象的方法,例如在一篇中介绍的等方法。 当我们希望将一些功能性代码重复使用,可以将其打包成一个 jQuery 插件来使用。 使用 $ 别名 首先我们在编写插件时必须保证 jQuery 库已经载入,但是我们不能保证 $ 一定可用,为了使用 $ 别名,我们可以利用 IIFE (Immediately Invoked Function Expression),...
阅读 2226·2021-11-15 11:37
阅读 2600·2021-09-23 11:21
阅读 2925·2021-09-07 10:11
阅读 3142·2019-08-30 15:53
阅读 2789·2019-08-29 15:13
阅读 1588·2019-08-26 13:57
阅读 1081·2019-08-26 12:23
阅读 2371·2019-08-26 11:51