zoukankan      html  css  js  c++  java
  • 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

    再一次FUCK JS  屌语法 擦你妹

    定义一个全局全量,例如:var i=0;
    然后调用jquery的一个函数
     $.get(url, function(data) {
    i=9;
    })
    alert(i);
    得到的是0而不是9.

       

       var i=0;
            $.ajax({
               url:"test.html",
               success:function(){
                     i = 9;
               },
               async: false
            });
            alert(i)

    Js代码
    1. $.ajaxSettings.async = false;   

    就可以啦

    例如:

    Js代码
    1. function xxx(){
    2. var result = ""; 
    3. $.ajaxSettings.async = false; 
    4. $.getJSON("url",{id:11},function(data){  
    5.      result = data.res; 
    6. });  
    7. return result;  
    8. }  

     如果不加上主句:

    Js代码
    1. $.ajaxSettings.async = false;  

     result是没有返回值的,因为在还没有执行异步请求操作之前就已经执行return了。

  • 相关阅读:
    PHP header函数使用教程
    mysql show processlist 命令检查mysql lock
    MySQL
    background-position 用法详细介绍
    Windows下Mysql主从配置(Mysql5.5)
    Tcl介绍和基础语法
    研发项目管理
    VCS 查看代码覆盖率
    Openrisc的or1200
    MY $MYVIMRC
  • 原文地址:https://www.cnblogs.com/subtract/p/4726598.html
Copyright © 2011-2022 走看看