AKTUALIZACJA
Wygląda na to, że aktualizacja Firefoksa do 46 rozwiązuje problem!
Oryginalne dochodzenia
Ponieważ mam również do czynienia z tym irytującym problemem, postanowiłem spróbować.
Konfiguracja
- Ubuntu Server 12.4
- PHP 5.5.30
- MySQL 5.6.27
- Świeża instalacja Magento 2.0.4 bez próbki
- Tryb programisty z wyłączoną pamięcią podręczną
Replikowanie problemu
Na pierwszy rzut oka problem ten wydawał mi się zupełnie przypadkowy. Jednak po kilku testach udało mi się dowiedzieć dokładnie, jak odtworzyć problem.
Przeglądarka
Po pierwsze, nie byłem w stanie odtworzyć problemu w Google Chrome, Internet Explorer 11 ani w starym Windows Safari 5.2.17. Używam głównie FireFox (45.0.2) i rzadko używam Google Chrome. Nawet po tym, jak dokładnie znalazłem sposób na odtworzenie problemu, nie byłem w stanie powielić się w Chrome.
Zakładki
Musisz mieć kilka kart otwartych w FireFox, aby móc replikować problem.
Kroki
- Otwórz panel administracyjny i zaloguj się
- Po przejściu do pulpitu nawigacyjnego możesz kliknąć dowolny element menu. Zazwyczaj ponownie klikam ikonę deski rozdzielczej
- Jak tylko klikniesz element menu, kliknij jedną z otwartych kart i kontynuuj przeglądanie Internetu, czekając na zakończenie ładowania panelu administracyjnego (na podstawie obracającej się ikony obok tytułu karty)
- Niestety, nigdy nie załadujesz tej strony.
Dochodzenie
Wygląda więc na to, że gdy klient nie jest skoncentrowany na karcie panelu administracyjnego, Magento 2 wydaje się nie ładować wszystkich zasobów, aby witryna mogła się całkowicie załadować .
Zauważyłem, kiedy wróciłem do nieskończonej strony ładowania panelu administracyjnego, że udało się załadować wiele zasobów.
Jak powiedział Fabian, brak błędów w konsoli, brak ładowania zasobów i brak ładowania zasobów. Wszystko wyglądało tak, jakby strona została załadowana.
Jednak po kliknięciu przycisku zatrzymania ładowania przeglądarki Firefox (X na pasku adresu URL) zauważyłem, że na karcie sieci dodano kilka zasobów, których nie było, gdy strona była w stanie nieskończonego ładowania
UWAGA: zrzut ekranu poniżej dotyczy tylko deski rozdzielczej. Zauważyłem, że więcej zasobów zostało załadowanych po kliknięciu na przykład przycisku zatrzymania ładowania na stronach konfiguracji.
Tak więc dla strony Dashboard zasoby te zostały dodane po kliknięciu przycisku zatrzymaj ładowanie.
Gdy strona jest ładowana normalnie, nie przełączając się na inną kartę, po wczytaniu DOM ładowane są następujące zasoby (zakładam przez AJAX), możesz zauważyć grubszą szarą linię między nimi a zasobami powyżej:
Z jakiegoś powodu następujące zasoby są ładowane automatycznie, gdy strona znajduje się w nieskończonym stanie ładowania, ale są ładowane po załadowaniu DOM, gdy strona ładuje się dobrze:
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-popup.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-slide.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-custom.html
/static/adminhtml/Magento/backend/en_US/mage/apply/scripts.js
Tak daleko sięgnąłem do zadania debugowania. Myślę, że jest jeszcze wiele do zrobienia, aby przetestować i zawęzić problem, ale nie miałem czasu na więcej testów, wrócę do niego, gdy będę miał czas.
Dalsze dochodzenia
Skończyłem instalowanie wtyczki HTTPFox na moim FireFoxie.
Oto, co dostałem, kiedy kliknąłem przycisk zatrzymania ładowania po 1min ładowania (widać, że jquery.storageapi.min.js
w kolumnie czasu jest 59 sekund). Podświetlone wiersze to zasoby, które zostały załadowane po zatrzymaniu ładowania:
Próbowałem zaktualizować bibliotekę jquery.storageapi do najnowszej wersji dostępnej na GitHub, ale niestety nie wydaje się to rozwiązać problemu.
Ponieważ ładowanie favikonu było następne na liście, skomentowałem kod dodając favicon do głowy, ale nie rozwiązało to również problemu.
Próbowałem debugować domReady.js
plik, ponieważ jego nazwa brzmi, jakby to mogła być wina, ale nie ma szans.
Również tutaj są dwa access.log
pliki:
Nadal nie mogę zrozumieć, co się tutaj dzieje.
Aktualizacja
Niedawno wprowadziłem dwie zmiany w mojej instalacji:
- uaktualnij FireFox do 46.0
- aktualizacja z 2.0.4 do 2.0.5
Teraz nie mogę już powtórzyć problemu.