关于ajaxStart 和 ajaxStop

147 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情

Prototype并不是唯一能够提供针对Ajax请求的全局事件处理函数的程序库;jQuery中通过ajaxStart()和ajaxStop()两个方法提供了类似的功能。当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时,将调用ajaxStart()方法。同样,ajaxStop()方法则是在所有Ajax请求都完成时调用。这些方法的参数都是一个函数,这个函数将在事件发生时被调用。

介绍

AjaxStart顾名思义就是在Ajax请求之前执行,Stop表示在Ajax请求完成后执行

ajaxStart 的使用格式为:

$(document).ajaxStart(回调函数);

ajaxStop 的使用格式为:

$(document).ajaxStop(回调函数);

实验测试:

  • 在页面里面创建一个按钮,使用 $("div").load("cat.html") 在 div 标签中加载 cat.html 页面上的内容。
  • 当 AJAX 请求开始执行前,ajaxStart 事件被触发,弹出警告框提醒 AJAX 开始执行。
  • 当 AJAX 请求执行完毕后,ajaxStop 事件被触发,弹出警告框提醒 AJAX 执行完成。
  • cat.html就是一张图片,可以自己随便放一个。

cat:

image.png

index

image.png

点击一次,出现弹窗开始执行,点击确定变成执行完成

image.png

最后变成

image.png

那么接下来我们来进行一个召唤柯基的实验

我们使用之前学过的 load 方法来召唤一只柯基,并在页面上使用 ajaxStop 和 ajaxStart 方法在页面上提示召唤开始和召唤结束。

和前面一样,准备照片,不同的是,本次需要两个照片,第一个是柯基照片,第二个是狗子饭盆

image.png

然后新建index文件,里面有一个button叫召唤,1. 当点击页面上的「召唤」按钮,在 div 标签中开始加载 dog.html 页面上的内容。

代码和上面差不多,不过我们使用方法绑定了动画,所以才有一步一步感觉,其他把名字修改就是。

我们知道图片是在div里面出现的,并且在dog页面给每个图有id,那么我们js里面,获取到id然后调用延迟动画 可以得到如下效果。

图片描述