Я использую pdf.js для просмотра pdf-файлов, но результат не очень хороший, пожалуйста, взгляните на мой код.Предотвращать одновременные вызовы функций при использовании pdf.js?
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