6

Наблюдение: Я запускаю SPA в Polymer, и когда я открываю внутренние ссылки на новых вкладках фона в хроме, страницы не заканчивают загрузку (ajax и все), пока я не сосредоточусь на вкладке.Что происходит (или не происходит) на хромированной вкладке, открытой в фоновом режиме?

Вопросы: Что такое хромированный пользовательский фокус, чтобы сделать -или- Что ждет Полимер, прежде чем он закончит рендеринг страницы и отправку аякс-запросов?

Бонус: Как открыть панель инструментов Dev, нацеленную на вкладку, которую я открыл в фоновом режиме, чтобы наблюдать, что это/не происходит?

Bonus Ответ: Если вы открываете инструменты Dev на вкладке, уйдут на вкладке, а затем обновить средства разработки, вкладка связаны также обновить и имитации того, была открыта в Backgroun.

+0

В соответствии с [этим ответом] (http://stackoverflow.com/a/22070842/361762) вся обработка остановлена ​​на вкладках фона. [Другой ответ] (http://stackoverflow.com/a/12522580/361762) предлагает использовать WebWorkers, чтобы поток работал в фоновом режиме. – dave

+0

За исключением этого, если вы перейдете на сайт http://builtwithpolymer.org/ и откройте любой из сайтов в новых фоновых вкладках. Кажется, что все они загружаются до того, как я их фокусирую. –

+1

Релевантно: [Википедия - Если дерево падает в лес, и никто не слышит его, звучит ли он?] (Https://en.wikipedia.org/wiki/If_a_tree_falls_in_a_forest) – zerkms

ответ

5

В Polymer, core-ajax с атрибутом auto, установленным в true использует полимерный job утилиту (source). Утилита работы Polymer использует функцию requestAnimationFrame() (source). Согласно here и here, хром делает паузу на этой функции полностью, когда вкладка неактивна.

Решение: Удаляя атрибут авто из моих core-ajax элементов и вручную вызов go() метода на готовом случае, я был в состоянии получить свои страницы, чтобы полностью загрузить в фоновом режиме.

+0

Любая идея, как это работает в Polymer 1.0 с «iron-ajax»? – wogsland

Смежные вопросы