一、jQuery When方法的基础语法
在做网页开发的时候,你可能要做很多事情,这时候就别害怕了。 jQuery里的When功能会帮到你,让你不再为那些麻烦的异步处理和一大堆callback函数头痛。用到Promise对象后就交给When,坐等结果出来就好。等到所有任务都结束后,callback函数里的参数就变成了任务处理结果的列表;如果有哪个同步任务失败了,那Then函数就能告诉你问题出在哪儿。只需要按照下面的步骤操作就可以啦:
javascript $.when(异步操作1,异步操作2,…).done( ).fail(
这样,电脑就会明白我们还要处理啥事儿。搞定它们之后,咱们还能接着忙!
二、jQuery When方法的常见使用场景
1.多个异步请求都完成后再执行接下来的操作
function(异步操作1结果, 异步操作2结果, …) { // 在操作1和操作2都成功结束后执行的代码块 }
在做项目时,很多时候需要搞定几个固定动作才行,比如网页上常见的那些AJAX请求就是这样。如果你想在确认所有请求完成之后再行动,那么jQuery的When功能就能大显身手!其实就这么简单,对?
var promise1 =$.ajax({
function(错误原因) { // 当其他操作失败时执行的代码块 }
var promise2 =$.ajax({
就是说,你只要把”.when”放在“承诺1”跟“承诺2”中间,然后结果”result1″和”result2″就能出来了。
搞定没?赶快去搞定那俩promise(就是 promise1 跟 promise2)的回复逻辑!
2.检查数据是否已准备好
遇到慢悠悠的异步数据,别自己在那傻等赶紧给别人说正在加载!有个简单神器叫jQuery的When函数就可以做到。看看下面这个例子你就懂了:
url: "https://jsonplaceholder.typicode.com/todos/1", method: "GET"
var callback = function(){
就这么简单,你可以直接这样做:用’$.when(‘http://www.example.com/url/to/resource’)’这个方法就行,非常快捷方便!
url: "https://jsonplaceholder.typicode.com/todos/2", method: "GET"
这样可以确保数据已准备好后再执行相应操作。
3.等待多个动画完成后再执行下一步操作
网上玩儿的时候,有些时候得等动画全都看完才能继续。这时候咱们就在叫’Promise’的地方写几行代码,让动画告诉我们‘都好了,全部搞定’,然后就能去干其他事举个例子,看这段代码:
console.log(response1[0]); // 输出第一个Ajax响应数据 console.log(response2[0]); // 输出第二个Ajax响应数据
把$elem1里的动画先完成,再来看下个步骤。
搞定$elem2的动画功能后,就可以看看动画效果如何!
动画啥的三句就解决了,太简单了,直接上$elem3.animate({…}就能妥妥地搞定!
等动画1、2、3都停了,我们就可以去做些别的。
这样就能保证所有动画都弄完后才往下走啦!
console.log("Do other stuff after data is loaded");
4.封装同一个元素上的多个动画
除了等所有元素的动画做完之外,还能把好多元素的动画捆绑在Promise里,就像这样子做:
.done(function(response) { console.log("Data loaded successfully"); }) .always(callback);
var promisesArray =[];
稍微歇息半会儿,给$element1喘口气的时间。然后我们就来将它添加进那个承诺列表框中!
在这个列表上,把$element1的淡出效果加进去吧:(比如)$element1. fadeOut(). promise()就行了。
先搞定$element2的提速,然后抓紧把任务单列出来,试试拖一下这个元件,最终达成共识就好了。
咱完成所有约定以后,开始动工!最后的代码大概就是这样子的哈:
这样一来,我们就能把同一元素上多个操作的顺序搞清楚!
老实说,jQuery的When就像是个神奇小方块儿,那些烦人的异步问题都能解决。虽然简简单单,但是好用得让人爱不释手!
三、总结与展望
读完这段话,你就能学会用jQuery的”When”功能来对付那些恼人的异步操作。无论你是新手还是老司机,这种方法都能帮你理清头绪,编程变得轻松简单!下次再碰到麻烦的网页交互或大量的异步请求,别磨蹭,直接试试这个新技能,保证让你工作效率瞬间提升好几倍,给用户带来无比愉悦的使用感受!
给力推荐这篇文章!看了你会更明白jQuery的When函数是啥回事。下次你遇到困难杂症时,相信我,这个小程序能帮你轻松解决!
评论0