在ajax成功中设置变量并在请求之外使用

时间:2017-09-24 17:14:10

标签: jquery ajax function variables

我有这样的ajax调用,我想设置一个全局变量,所以我可以用它来写我的代码在下面请给出访问UserTr变量的建议: -

    var UserTr;
    $.ajax({
            url:'ReAjaxFunction.php',
            data:'fun=3',
            type:'POST',
            cache:false,
            success:function(UserResponse){
              var FetchAppUser= JSON.parse(UserResponse);
              $.each(FetchAppUser.AppUser,function(key,value){
                UserTr ='<tr><td colspan="2">Approval Status</td></tr><tr><td>'+value.Name+'</td><td>'+value.ApprovalStatus+'</td></tr>'
              });
            }
          });
    alert(UserTr);

1 个答案:

答案 0 :(得分:0)

最后调用了你的import time import pandas as pd import scipy as sp import numpy as np df = pd.DataFrame(np.random.randint(0,100,size=(100000, 4)), columns=list('ABCD')) size_win = 1000 def window_single_sided_parzen(window_size): return sp.signal.parzen((window_size-1)*2+1)[0:window_size] def custom_rolling_sum(x, window): return (x * window).sum() t_start = time.time() df_rolled_fast = df.rolling(window=size_win, win_type='parzen').sum() print(f'Run time of builtin: {time.time() - t_start:.2f} s') t_start = time.time() df_rolled = df.rolling(window=size_win).apply(lambda x: custom_rolling_sum(x, window_single_sided_parzen(size_win))) print(f'Run time of apply: {time.time() - t_start:.2f} s') ,只是Ajax调用是异步的,所以在Ajax调用完成之前警报就会运行。

在提醒时,您的变量alert未定义,因此您的提醒为空。

但是,如果您在实际设置UserTr变量之后立即将alert调用移动到Ajax调用内部,那么它将被定义并具有值(假设JSON解析)成功并且存在预期的结构。

话虽如此,你在Ajax调用中设置UserTr的方式意味着在UserTr的每个循环迭代中它被覆盖 - 我想你想使用{{1积累一系列表行。

为此,您还需要将变量初始化为字符串。

这样做:

$.each

然后将UserTr +=替换为var UserTr = "";

在迭代之后,您可以使用完全填充的UserTr = ...

执行某些操作