2017-12-04 270 views
11

Mamy stronę internetową, która dobrze się wyświetla we wszystkich przeglądarkach i urządzeniach, z wyjątkiem tego, że jest otwierana po raz pierwszy w Safari mobile (lub Safari Mac na wąskich ekranach).iOS Safari nie renderuje całej strony od pierwszego razu.

WWW: http://sheriff.org/

odtworzyć na iPhone Safari:

  1. Otwórz stronę internetową w trybie prywatnym
  2. odśwież stronę

odtworzyć na Safari dla Mac:

  1. Otwórz Safari w trybie prywatnym
  2. Przełącznik User Agent na iOS - iPhone (Develop> User Agent> Safari - iOS - iPhone)
  3. Resize przeglądarkę, aby mieć w przybliżeniu o szerokości urządzenia mobilne
  4. Otwórz stronę internetową
  5. odśwież stronę

Oczekiwany: Page powinien uczynić to samo pierwszy i drugi raz

sheriff.org after refresh

rzeczywista: po raz pierwszy w trybie prywatnym, tylko zielone okno widoczne Czas drugiej strony powoduje całkowicie

sheriff.org in safari first time in private mode

WYNIKÓW : Próbowałem porównać obie strony (gdy renderuje się poprawnie i kiedy renderowanie jest zepsute), aby sprawdzić, czy re są jakąkolwiek różnicą, aby dowiedzieć się, że w obu przypadkach strona ma dokładnie taki sam kod HTML: HTML &.

Jeśli sprawdzać każdy z elementów, które nie są pokazane na pierwszej próbie (która powinna uczynić poprawnie po odświeżania strony), nie będzie żadnych styl, który ma wpływ na widoczność elementu (jak opacity, display, visibility , position ... etc)

UPDATE: wydaje się, że jest błąd w Safari konsoli Unhandled Promise Rejection: [object DOMError], które mogłyby być przyczyną tego problemu, zrobiłem badania i okazało się, że może to być spowodowane przez auto - odtwarzanie wideo na stronie (strona ma wideo, ale wideo jest odtwarzane, nawet jeśli ten błąd został zgłoszony), więc uważam, że powinien istnieć inny powód, dla którego ten błąd został zgłoszony. Każda rada, dlaczego widzimy takie zachowanie w Safari, jest bardzo doceniana.

+0

Witam mogę odtworzyć na moim telefonie, ale nie na emulowanym safari iPhone'a w systemie Mac OS Sierra 10.12 - może to być jednak iOS 11, ale ... wiele się tutaj dzieje, jestem ge błędy 6 js - co nie jest w ogóle dobre: ​​/ – scooterlord

+0

js błędy nie powinny wpływać, pojawią się w obu przypadkach, gdy problem zostanie odtworzony, a gdy nie jest tak dobrze. –

+0

Błąd, jest prawdopodobnie związany z JS, więc może powinieneś również zajrzeć do tego. Może to być spowodowane przez pewien czas oczekiwania lub wyzwolenie elementu DOM jeszcze nie załadowanego - podczas gdy drugi raz plik jest buforowany, więc się ładuje. – scooterlord

Odpowiedz

0

Twoja strona jest pełna problemów, a niektórzy komentatorzy zauważyli, że niektóre problemy są spowodowane absurdalnie dużym rozmiarem strony głównej, co powoduje, że niektóre zasoby witryny nie są ładowane, gdy chcesz, aby były ładowane, gdy niektóre duże zewnętrzne skrypty ładują się przed twoim css. Powodem, dla którego css w pytaniu ładuje się na "drugiej" próbie, jest to, że css zostaje zbuforowany ... w końcu (po załadowaniu jednego z kilkudziesięciu javascripts prosisz PRIORA o jeden z kilkunastu żądanych plików css). ..i poprawnie wdroży css na kolejnych ładunkach (o ile rzeczywiście zapewnisz wystarczającą ilość czasu i przepustowości do załadowania strony za pierwszym razem).

Chcę dać wam dużo rad off the bat, ale w zgodzie dotyczące postu:

  1. Upewnij się, że CSS jest wywoływana przed dowolnych JavaSkrypty w głowie swojej stronie (s) .
  2. Zastanów się nad wyeliminowaniem około 90% skryptów, które są niepotrzebne dla Twojej witryny, aby były przydatne ... ponieważ bardzo niewiele osób będzie cierpliwie ładować tak dużo danych przed przeglądaniem Twojej witryny ... szczególnie w relatywnie wolnych przeglądarkach mobilnych.
  3. Sprawdź wszystkie błędy w konsoli Chrome (kliknij prawym przyciskiem myszy na swojej stronie w Google Chrome i naciśnij "sprawdź", a następnie spójrz na zakładkę "konsola" ... Twoja witryna zawiera wiele błędów. Musisz je naprawić, jeśli chcesz swoją stronę do standardów zgodnych i bardziej prawdopodobne, aby być indeksowane przez wyszukiwarki
  4. Spójrz na swojej stronie w Google Insight Strona:.!. https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fwww.sheriff.org%2FPages%2FHome.aspx

powodzenia

+0

Aby uzyskać więcej informacji na temat tego, dlaczego i gdzie umieszczać łącza css przed odsyłaczami do skryptów, istnieje kilka doskonałych odpowiedzi tutaj: https://stackoverflow.com/questions/9271276/is-the-recommendation-to-include-css- before-javascript-invalid jest nieprawidłowy – Doomd