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了。

  • 相关阅读:
    Java基本概念
    Java基础语法
    Java环境的搭建
    elicpse
    常见编译器EOP
    上传突破学习笔记
    认识ollydbg
    160个Crackerme破解
    python基础(1)
    文件上传
  • 原文地址:https://www.cnblogs.com/subtract/p/4726598.html
Copyright © 2011-2022 走看看