Сейчас я разрабатываю приложение генератора штрих-кода.
Здесь я использовал html2pdf.js
Я использовал settimeout
для массового сохранения.
Но когда я ввожу 13 штрих-кодов и 358 штрих-кодов, скорость рендеринга отличается
13 штрих-кодов: в среднем 280 мс
358 штрих-кодов: в среднем 6500 мс
в случае 13 штрих-кодов
в случае 358 штрих-кодов
И мой код ниже
async function timerCallback(){
var elem = $('#'+elemlist[elemindex]);
var index = elem.attr('id');
var value = elem.attr('value');
console.log(index,value);
var svgelem = document.getElementById(index);
var html = svgelem.outerHTML;
var path = dir+"/"+bar_type+"_"+value+".pdf";
console.log(path);
modal.updateModal(elemindex);
var opt = {
margin: 0,
filename: bar_type+"_"+value+".pdf",
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 30 },
jsPDF: { orientation : 'l', unit: 'px', format: [$('#'+index).width(), $('#'+index).height()+10]}
};
// New Promise-based usage:
var worker = new html2pdf();
await worker.set(opt).from(html).outputPdf().then(async function(e){
var buf = new Buffer(e, 'binary');
await fs.writeFile(path, buf, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
});
setTimeout(() => {
if(elemindex<elemlist.length)
{
timerCallback();
elemindex++;
}
else{
modal.removeModal();
}
}, 1300);
}
timerCallback();
Я не знаю, что не так с моим кодом.