嗨,下面的Javascript是在我提交表单时调用的。它首先从文本区域分割一堆网址,然后:
1)在表格中为每个网址添加行,并在最后一列(“状态”列)中显示“未开始”。
2)再次循环遍历每个URL,首先它进行ajax调用以检查状态(status.php),该状态将返回0到100之间的百分比
。3)在同一循环中,它通过ajax启动实际过程(process.php),当进程完成时(请记住连续的状态更新),它将在状态栏中说“已完成”并退出auto_refresh。
4)然后应转到下一个“每个”并对下一个URL进行相同的操作。
function formSubmit(){
var lines = $('#urls').val().split('\n');
$.each(lines, function(key, value) {
$('#dlTable tr:last').after('<tr><td>'+value+'</td><td>Not Started</td></tr>');
});
$.each(lines, function(key, value) {
var auto_refresh = setInterval( function () {
$.ajax({
url: 'status.php',
success: function(data) {
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>"+data+"</td>");
}
});
}, 1000);
$.ajax({
url: 'process.php?id='+value,
success: function(msg) {
clearInterval(auto_refresh);
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>completed rip</td>");
}
});
});
}
您想要 按顺序 运行几个异步操作,对吗?我将构建一个函数数组,以通过序列助手执行和运行它。
https://github.com/michiel/asynchelper-
js/blob/master/lib/sequencer.js
var actions = [];
$.each(lines, function(key, value) {
actions.push(function(callback) {
$.ajax({
url: 'process.php?id='+val,
success: function(msg) {
clearInterval(auto_refresh);
//
// Perform your DOM operations here and be sure to call the
// callback!
//
callback();
}
});
});
}
);
如您所见,我们构建了一个范围函数的数组,这些函数将一个任意回调作为参数。音序器将为您运行它们。
使用github链接中的序列帮助器并运行,
var sequencer = new Sequencer(actions);
sequencer.start();
顺便说一句,可以在几行代码中定义定序器功能。例如,
function sequencer(arr) {
(function() {
((arr.length != 0) && (arr.shift()(arguments.callee)));
})();
}
问题内容: (做了很多修改,因为它是类的一部分,等等。) 目前,这有点让人讨厌,因为计时器的使用似乎很垃圾。我会使用$ .when和$ .done,但是我不知道可能有多少房间,所以我不知道什么时候放什么。 如何确保仅在所有AJAX请求返回后才调用run_the_rest_of_the_app()? 问题答案: 在进行AJAX调用之前, 完成AJAX调用后(在回调中):
我对RxJava并不完全陌生,但我被一项看似简单的任务所阻碍。 我有一个数据源,它公开了一个反应式API,我所要做的就是获取一些数据,返回它,并在没有其他消息发出时自动关闭连接。 这是我的代码: conn.query()和conn.close()在不同的调度程序中异步执行。此代码不起作用,因为conn.close()返回一个没有订阅服务器的Completable。此外,如果我手动订阅doOnCom
我有多个具有多个选择限制的无线电组,一个是by name属性,另一个是jQuery。对于每个无线电组,我在更改时将checked属性设置为false,这样每个组只能检查一个无线电。 HTML jQuery 这只适用于第一组,有什么建议吗? 编辑: 使用类选择器而不是ID: HTML jQuery
each既是一个类方法,同时也是一个对象方法,两个方法适用场景不同;换言之,你可以使用mui.each()去遍历数组或json对象,也可以使用mui(selector).each()去遍历DOM结构。 mui.each( obj , handler ) obj Type: Array||JSONObj 需遍历的对象或数组;若为对象,仅遍历对象根节点下的key handler Type: Funct
描述 (Description) 在列表上下文中调用时,此函数返回一个2元素列表,该列表由哈希的下一个元素的键和值组成,以便您可以迭代它。 在标量上下文中调用时,仅返回散列中下一个元素的键。 语法 (Syntax) 以下是此函数的简单语法 - each HASH 返回值 (Return Value) 在列表上下文中调用时,此函数返回一个2元素列表,该列表由哈希的下一个元素的键和值组成,以便您可以
An asynchronous version of Sequence#each. Signature AsyncSequence.each = function(fn) { /*...*/ } AsyncSequence.each = function each(fn) { var iterator = this.parent.getIterator(), onNextCallback