2015-08-25 15 views
6

Obserwacja: Używam OSO w Polymer i kiedy otworzyć wewnętrznych odnośników w nowych kartach tło w kolorze chromu, strony nie kończy ładowanie (Ajax) i wszystko, dopóki nie koncentrują się na karcie.Co się dzieje (lub nie dzieje się) w karcie chrome otwartej w tle?

Pytania: Czym jest chrom czeka na uwagi użytkownika, aby zrobić -lub- Co Polymer czekając zanim zakończy renderowania strony i wysyłanie żądań ajax?

Bonus: Jak mogę otworzyć panel dev narzędzi kierowania kartę mam otwartą w tle, aby obserwować, co jest/nie dzieje?

Bonus Odpowiedź: Jeśli otworzysz narzędzia programisty na karcie, odejdziesz od karty, a następnie odświeżysz narzędzia programisty, powiązana karta również odświeży i zasymuluje otwarcie w tle.

+0

Według tej odpowiedzi] [(http://stackoverflow.com/a/22070842/361762) jest przetwarzany zatrzymany na kartach tła. [Inna odpowiedź] (http://stackoverflow.com/a/12522580/361762) sugeruje używanie WebWorkers do utrzymywania wątku działającego w tle. – dave

+0

Tyle że jeśli pójdziesz do http://builtwithpolymer.org/ i otwórz dowolny z miejsc w nowych kartach w tle. Wygląda na to, że kończą ładowanie przed rozpoczęciem pracy w tle, zanim je skupię. –

+1

Stosowna: [Wikipedia - Jeśli drzewo upada w lesie i nikt nie jest wokół tego słuchać, to wydaje dźwięk?] (Https://en.wikipedia.org/wiki/If_a_tree_falls_in_a_forest) – zerkms

Odpowiedz

5

polimeru, core-ajax atrybutem auto ustawiony true wykorzystuje Polymer job narzędzia (source). Narzędzie pracy Polymer wykorzystuje funkcję requestAnimationFrame() (source). Według here i here, chrom wstrzymanie tej funkcji całkowicie, gdy karta jest nieaktywna.

Rozwiązanie: Usuwając atrybut auto z moich core-ajax elementów i ręcznie wywołanie metody go() na gotowy razie udało mi się dostać w swoje strony, aby w pełni załadować w tle.

+0

Każdy pomysł, jak to działa w Polymer 1.0 z 'iron-ajax'? – wogsland