zoukankan      html  css  js  c++  java
  • jquery Ajax 的进一步了解

    一、前言

      当我们要用到异步请求时可以使用ajax,在之前对于异步的概览只是停留于字面意思上。当今天遇到一个问题时,才真正了解异步的原理。

    二、实例

      目的:创建一个Js函数,通过ajax将一个参数提交到后台进行验证并将验证结果返回到前台作为函数的返回值。

      出现的问题:当运行时函数的返回值总得不到预期的值,但ajax请求确实是成功的,最终发现是由于ajax的异步请求导致了这一问题。

    修改之前的代码:

     function checkIsproj(node) {                
                    var r;
               $.post("Ajax.ashx", {
                        ParamType: "Init",
                        Action: "CheckIsProj",
                        SelectNode: node.text
                    },
                    function (data, txtstatus) {
                      
                        if (data == 0) {
                           
                            $.messager.alert("提示", "请选择项目!");
                            //$("#ProjectTree").combo("showPanel");
                            r = false;
                           
                        }
                        else {
                            $.post("Ajax.ashx", {
                                ParamType: "Init",
                                Action: "ProjInfroSession",
                                CurrProjName: node.text
                            }
                                );
                            debugger;
                            r = true;
                            
                        }
                    }
                    )
    
                    return r;
                }

    修改之后(将请求变为同步):

                //修改:检查所选择的节点是否是项目
                function checkIsproj(node) {                
                    var r;
                    $.ajax({
                        type: "post",
                        url: "Ajax.ashx",
                        async: false,
                        data:{
                            ParamType: "Init",
                            Action: "CheckIsProj",
                            SelectNode: node.text
                        },
                        success: function (data,txtstatus)
                        {
                            if (data == 0) {
    
                                $.messager.alert("提示", "请选择项目!");
                                //$("#ProjectTree").combo("showPanel");
                                r = false;
                            }
                            else {
                                $.post("Ajax.ashx", {
                                    ParamType: "Init",
                                    Action: "ProjInfroSession",
                                    CurrProjName: node.text
                                }
                                    );                           
                                r = true;
                            }
                        }
                    });              
    
                    return r;
                }
               

      

    三、总结

    不积跬步,无以至千里!

  • 相关阅读:
    30分钟速懂Java8新特性!
    学习数据结构和算法心得
    看似简单但容易忽视的编程常识
    你应该关注的几个Eclipse超酷插件
    无谓的通宵加班之后的思索
    比特币这么火热,看看这篇比特币初学者指南
    2017年最受欢迎的十大开源黑客工具
    15分钟破解网站验证码
    我的新博客:www.wangyufeng.org
    20 岁时候的你在想些什么?
  • 原文地址:https://www.cnblogs.com/YanYongSong/p/5244870.html
Copyright © 2011-2022 走看看