【发布时间】:2017-04-26 23:28:27
【问题描述】:
我有一个 jQuery $.ajax() 函数,它成功返回一个 base64 值,即 pdf 页面。我必须返回多个 base64 值,所以我能想到的唯一方法是遍历 $.ajax() 函数。当返回每个成功时,我将 base64 值写入图像元素。这工作正常。问题是,因为它是异步的,它不一定按顺序返回页面。 我知道这不是最好的方法,但如果我总是有一个不同的值,即页数,我该如何链接呢?
for (i = 1; i <= pdfPageCount; i++) {
$.ajax({
type: 'POST',
contentType: 'application/json',
url: 'Page.aspx/Method',
dataType: 'json',
error: function (err) {
alert('Error: ' + err);
},
success: function (resultStr) {
//alert('Page: ' + i);
var sigImage = document.createElement("img");
sigImage.setAttribute('src', 'data:image/png;base64,' +
resultStr.d);
document.getElementById("imgId").appendChild(sigImage);
},
});
} // end the for loop
HTML 中只有一个 div:
<form id="form1" runat="server">
<div id="imgId">
</div>
</form>
【问题讨论】:
-
根据定义,Ajax 是异步的。你可能有两种解决方案:回调地狱或承诺......