zoukankan      html  css  js  c++  java
  • Jquery~$when_done_then的用法

    对于$.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://www.cnblogs.com/lori/p/5511846.html

  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/kpengfang/p/5703871.html
Copyright © 2011-2022 走看看