细说 jQuery Ajax操纵篇(三) - 历程处置惩罚

关于 jQuery 经由过程 Ajax 体式格局通报数据时,我们还能够在过程当中举行肯定的处置惩罚,以便到达我们的需求。

视察函数

ajaxStartajaxStop 函数能够用来作为视察函数,我们能够运用视察函数的回调函数来做响应的处置惩罚。

  • Ajax 要求最先且还没有举行其他传输时,会触发 ajaxStart 的回调函数。
  • 当末了一次运动要求停止时,则会实行经由过程 ajaxStop 注册的回调函数。

因为视察函数具有全局性,所以须要运用 $(document) 来挪用。我们经由过程运用 Ajax 要领获得一个图片的例子来测试两个函数:
当前页面为:

<div></div>
<button>load</button>

《细说 jQuery Ajax操纵篇(三) - 历程处置惩罚》

同目录下的 test.html 内容为:

<img src="avatar.jpg" />

点击按钮后愿望载入图象:

  $('button').click(function() {
    $('div').load('test.html');
  });

《细说 jQuery Ajax操纵篇(三) - 历程处置惩罚》

此时我们能够运用 ajaxStartajaxStop 函数来增添提醒:

  $(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');
  });

此时点击按钮后:

《细说 jQuery Ajax操纵篇(三) - 历程处置惩罚》

关于非 load 要领,还能够运用 fail 要领来联缀处置惩罚:

  $('button').click(function() {
    $.get('noexsited.html', function(data) {

    }).fail(function(jqXHR) {
      alert('status is ' + jqXHR.status);
    });
  });

《细说 jQuery Ajax操纵篇(三) - 历程处置惩罚》

JSONP

JSONPJSON with padding,添补式 JSON,应用的是 <script> 标签能够跨域猎取 Javascript 文件的思绪,故能够跨域猎取 JSON 数据。
JSONP 的花样是把规范 JSON 文件包装在一对圆括号中,圆括号又前置一个恣意字符串。这个字符串,即所谓的 P,由要求数据的客户端来决议。
同样是上例的按钮,起首我们将外域页面 otherdomain.com/index.php 内容设置为:

<?php
$data = '{ "name": "stephenlee", "sex": "male" }';
echo $_GET['callback'] .'('. $data .')';

我们运用特别的占位符 ? 来完成跨域猎取 JSON 数据:

  $('button').click(function() {
    $.getJSON('otherdomain.com/index.php?callback=?', function(data) {
      console.log(data);
    });
  });

《细说 jQuery Ajax操纵篇(三) - 历程处置惩罚》

数据猎取胜利。

参考

http://book.douban.com/subject/24669823/

    原文作者:StephenLee
    原文地址: https://segmentfault.com/a/1190000000582266
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞