Случилось так, что необходимо мне было сгенерировать pdf на основе html странички с большим количеством графиков на js. Сделал с помощью wkhtmltopdf и вроде бы всё работало, но иногда графики отрисовывались не полностью. Складывалось впечатление, что в какой то случайный момент времени вебкиту надоедает ждать исполнение кода и он делает скриншот того, что уже уже есть.
Покопался в доке, нашёл несколько интересных параметров:
- --javascript-delay
- --debug-javascript
- --no-stop-slow-scripts
Прикрутили задержку на побольше, приказали не тормозить яваскрипт и врубили дебаг. Всё осталось как прежде, но благодаря дебагу вылезло 3 варнинга яваскрипта о неких неопределённых переменных. Начали раскапывать и дошли до того, что некоторые js скрипты, подключенные в коде страницы, доходят до вебкита не полностью (О.о), притом что в браузере эта страничка отрабатывает на все сто.
В итоге помогло отключение gzip сжатия статики для юзерагента вебкита. То бишь вебкит не до конца распаковывал сжатые nginx-ом js файлы.
Комментариев нет:
Отправить комментарий