我使用pdf.js来显示pdf文件,但结果不好,请看看我的代码。使用pdf.js时防止simultanous函数调用?
My codes are as follows.
var aaa = function (pdf, page_number) {
pdf.getPage(page_number).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = $('.pdf-view')[page_number-1];
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
};
for (var i = 1;i < 51;i++) {
aaa(pdf, i);
if (i !== 50) {
var a = '<canvas data="{{ raw_path }}" class="pdf-view hide" style="margin-bottom:10px;"></canvas>';
$('#file-view #pdf').append(a);
}
}
有一个循环,那么50个函数(aaa
)同时执行。效果是灾难性的,我的电脑卡住了。我想在执行最后一个函数后执行一个函数。
请帮我改进一下。非常感谢。 (对不起,我的英语是灾难性的为好。)
你能告诉我们在aaa()函数内会发生什么。它是一个ajax函数吗? – XPD
嗨,我添加了我的代码,它是关于画布,而不是ajax。请看看 – Patrickgao91
pdf js使用承诺和延期对象来启用异步处理。使用then()附加函数来启用链接。在当前情况下,aaa()在一个循环中被调用,它将同时调用aaa()50次。 – XPD