博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery~$when_done_then的用法
阅读量:6547 次
发布时间:2019-06-24

本文共 1583 字,大约阅读时间需要 5 分钟。

对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when...done...fail...then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱

$.ajax({        url: "/home/GetProduct",        dataType: "JSON",        type: "GET",        success: function (data) {            $.ajax({                url: "/home/GetProduct",                dataType: "JSON",                type: "GET",                success: function (data) {                    $.ajax({                        url: "/home/GetProduct",                        dataType: "JSON",                        type: "GET",                        success: function (data) {                                }                }        }

而它实现的功能无非就是外层执行完成后,去执行内层的代码代码,看下面的$.when写法,就清晰多了

$.when($.ajax({        url: "/home/GetProduct",        dataType: "JSON",        type: "GET",        success: function (data) {            alert(JSON.stringify(data));        }    })).done(function (data) {        alert(data[0].Name);    }).done(function (data) {        alert(data[1].Name);    }).fail(function () {        alert("程序出现错误!");    }).then(function (data) {        alert("程序执行完成");    });

而对于这种ajax的封装,在比较流行的node.js里也需要被看到,这就类似于方法的回调技术

在使用MVVM的KO上,更加得心应手,感觉$.when就是为了Knockoutjs而产生的!

//MVVM数据绑定    var MyModel = new model();    $.when($.ajax({        url: "/home/GetProduct",        dataType: "JSON",        type: "GET",        success: function (data) {            MyModel.PeopleList = ko.observableArray(data);//先为对象赋值        }    })).done(function (data) {        ko.applyBindings(MyModel);//再绑定对象    });

 

以后我们在进行前端开发时,应该多使用这种顺序的,平行的代码段,而少用嵌套的代码段,这只是大叔个人的见解。

转载地址:http://qsrdo.baihongyu.com/

你可能感兴趣的文章
第二章家庭作业 2.78
查看>>
Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)
查看>>
Risc-V指令集
查看>>
Python进阶04 函数的参数对应
查看>>
C语言结构体的“继承”
查看>>
WebView之禁止调用第三方浏览器
查看>>
POJ 3468 A Simple Problem with Integers(线段树 区间更新)
查看>>
安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
查看>>
C# 操作Excel,控制格式[转]
查看>>
iOS开发中一些常用的属性
查看>>
Git 使用教程
查看>>
spring--基于ioc的配置文件方式
查看>>
“小 U”- UI自动化测试平台 [自动化测试平台开发实战 - 基于 Spring Boot + Kotlin]...
查看>>
Vue使用过程中的可能会遇到的几个问题
查看>>
TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
查看>>
Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
查看>>
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>