Что на самом деле означает аргумент - виртуальный бюджет времени Chrome CLI? - PullRequest
0 голосов
/ 30 ноября 2018

Мне известно о документации аргумента --virtual-time-budget в источнике Chromium, но я не чувствую, что понимаю его:

// If set the system waits the specified number of virtual milliseconds before
// deeming the page to be ready.  For determinism virtual time does not advance
// while there are pending network fetches (i.e no timers will fire). Once all
// network fetches have completed, timers fire and if the system runs out of
// virtual time is fastforwarded so the next timer fires immediately, until the
// specified virtual time budget is exhausted.
const char kVirtualTimeBudget[] = "virtual-time-budget";

Я сделал несколькоэксперименты, и результаты меня смущали:

# I'm on macOS; you may change this alias according to your own OS
$ alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
$ chrome --version
Google Chrome 70.0.3538.110

$ time chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/
real    0m0.912s
user    0m0.264s
sys     0m0.219s

$ time chrome --headless --disable-gpu --print-to-pdf --virtual-time-budget=10000 https://www.chromestatus.com/
real    0m2.502s
user    0m0.347s
sys     0m0.244s

$ time chrome --headless --disable-gpu --print-to-pdf --virtual-time-budget=100000 https://www.chromestatus.com/
real    0m15.432s
user    0m0.759s
sys     0m0.406s

$ time chrome --headless --disable-gpu --print-to-pdf --virtual-time-budget=1000000 https://www.chromestatus.com/
real    0m15.755s
user    0m0.755s
sys     0m0.401s

Я думал, что Chrome будет ждать 0, 10, 100 и 1000 секунд в четырех приведенных выше примерах, прежде чем печатать в PDF, но реальное время ожидания показалосьбыть далекоМой вопрос: как заставить Chrome определенно подождать X секунд перед печатью страницы в PDF?В данный момент я рассматриваю только интерфейс Chrome CLI и не ищу таких инструментов, как Puppeteer.

1 Ответ

0 голосов
/ 09 декабря 2018

Я могу легко ответить на ваш заглавный вопрос (который объясняет ваши результаты).--virtual-time-budget указывает, как долго процесс будет ждать загрузки страницы, но не так долго.Если результат запроса доступен (больше нет сетевых запросов, ожидающих обработки), он немедленно вернет результаты.

Возвращаемая информация должна быть правильной, если в миксе нет запроса AJAX или другого Javascript.Если это так, вы должны прибегнуть к манипулированию Javascript / DOM, чтобы решить эту проблему.

...