我通过AJAX调用在后台生成PDF。生成PDF需要一些时间(大约一秒左右)。只有在完成前一个AJAX调用时才执行下一个AJAX调用
下面的工作正常,但问题是我用完内存。 因此,我只想在以前的AJAX调用完成时才开始计算(即只发出AJAX调用)。
我玩过async: false
,但它冻结了我的页面,这是不受欢迎的行为(无论如何都会使用async
)。
我的代码:
$("div[data-myid]").each(function(){
var myid= $(this).data('myid');
var my_div = $(this);
$.ajax({
url: "/my_ajax/" + myid + "/",
}).done(function (data) {
my_div.html(data.message + ' <a href="' + data.url + '">Download</a>');
});
});
HTML:
<table>
<tr>
<td><div id="div_260" data-myid="260">Queued..</div></td>
</tr>
<tr>
<td><div id="div_259" data-myid="259">Queued..</div></td>
</tr>
</table>
注意该表是动态生成的,一般包含超过100行。
关于如何最好地接近这个的任何想法?
您可以利用使用webWorkers的工作? –
@ RokoC.Buljan:我从来没有使用WebWorkers,但这些似乎正在执行一个外部的JS文件 - 不知道这可能会有帮助吗?你能提供一些背景吗? – SaeX