我试图通过两个不同的ajax调用将字符串放入数组中。然后使用字符串名称的ID创建Div,并包含有关从ajax请求流式传输哪些抽搐的数据。
问题是我正在努力这样做,元素通过第一个ajax调用然后经过第二个因为ajax调用是异步的。因此,数组中的元素将在第一个ajax请求完成之前通过第二个ajax请求,并尝试进入尚未创建的div。
为了解决这个问题,我把第二个ajax请求放在第一个请求中,如下所示:
ajax request {
使dis
的代码第二个ajax请求}
这似乎使得数组中的元素以正确的顺序返回,但是div没有正确显示来自ajax请求的数据。我注意到,在记录In [61]: x
Out[61]: array([1, 6, 7, 9, 3, 5])
In [62]: y
Out[62]: array([3, 5, 8, 9, 2])
In [63]: z = np.concatenate((x, y))
In [64]: z
Out[64]: array([1, 6, 7, 9, 3, 5, 3, 5, 8, 9, 2])
In [65]: _, i = np.unique(z, return_index=True)
In [66]: z[np.sort(i)]
Out[66]: array([1, 6, 7, 9, 3, 5, 8, 2])
变量时,数组中只有一个元素似乎被传递给第二个ajax请求。
[console log] [1]
无论如何,我仍然在学习如何排除故障,所以任何提示都会受到高度赞赏。
[这应该是它的样子] [2]
以下是JS,如果有帮助,这里有一个指向codepen的链接:https://codepen.io/mso122591/pen/jxNoBV
name
答案 0 :(得分:0)
解决这个问题的一种方法是承诺。我很快就用$ .when宣传了你的jquery,并修复了你的页面。
您的代码存在一些问题。有一个未使用var声明的变量,因此它创建了一个全局变量,因此您始终只获得最新的http get值。
我使用过" let"用于声明变量并将它们放在for循环中的关键字。这将创建一个局部变量,该变量仅在每个循环中有效且不会被覆盖。 for循环用作计数器变量" i"也没有声明,所以这也成为一个全局变量。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://api.jquery.com/jquery.when/
$.when(your ajax code)
https://codepen.io/anon/pen/Qrbzqx
这将在一个对象中创建一个具有两个响应的对象。您现在可以使用它将HTML写入文档
注意.then()会在每次http get
之后触发