Фон
Мы используем Puppeteer для рендеринга PDF-файлов на Node-сервере.Мы используем API для передачи больших строк запроса в API, который передается в Puppeteer.Как только Puppeteer рендерит веб-страницу, данные в строке запроса GET вытягиваются на визуализированную HTML-страницу, поэтому данные на странице заполняются динамически.Когда страница отображается, Puppeteer преобразует ее в PDF, и она загружается на клиент.
Проблема
Мы поняли, что, когда запросы очень велики, он ломает браузер, когда мы запускаем API с GET-запросом.Чтобы преодолеть это, мы используем API как POST и хэшируем данные, чтобы их можно было обработать позже.
Это заставило нас задуматься, существует ли максимальный символ для функции кукловода, отрисовывающей веб-страницу, используемую для рендеринга PDF.
Пример кода
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
ignoreHTTPSErrors: true,
dumpio: false
});
const page = await browser.newPage();
const data = reqMethod === 'POST' ? req.body : JSON.parse(req.query.data);
const {pdfOptions, ...templateData} = data;
const url = `${PDF_API_PROD}/${template}?data=${JSON.stringify(templateData)}`;
await page.goto(url);
const pdfBuffer = await page.pdf({
format: 'A4',
margin: {
top: '20px',
left: '20px',
right: '20px',
bottom: '20px',
},
...pdfOptions,
});
Вопрос
После просмотра кода выше вы увидите, что мы передаемОбъект данных непосредственно в URL-адрес в качестве параметра GET.Это будет использоваться для визуализации веб-страницы с помощью Puppeteer.
Как только веб-страница отображается с помощью Puppeteer, данные в строке GET будут перетаскиваться на веб-страницу с помощью JavaScript для динамического отображения страницы.
Какое максимальное количество символов можно передать в функцию Puppeteer await page.goto(url);
?