PHP Flush: Jak często i Best Practices

głosy
23

Właśnie skończyłem czytać tego posta: https://developer.yahoo.com/performance/rules.html#flush i już wdrożył równo po górnej części moich załadowaniu strony (głowa, css, top transparent / search / NAV) ,

Czy istnieje jakiś wydajność uderzył w Flushing? Czy istnieje coś takiego jak robi to zbyt często? Jakie są najlepsze praktyki?

Jeśli mam zamiar hit zewnętrznego interfejsu API dla danych, byłoby sensu wylewać przed ręką, dzięki czemu użytkownik nie czeka na tych danych, aby wrócić, a może przynajmniej uzyskać jakieś dane przed ręką?

Utwórz 09/12/2008 o 14:51
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
19

Technika opisana ładnie wygląda, ale ma kilka pułapek:

1) czas pomiędzy początkiem i końcem PHP skryptu jest małe w porównaniu do czasu transmisji; Poza tym, ten oszczędza użytkownikowi około 0,5 sekundy, w zależności od źródła. Jest to, że znaczna ilość czasu dla ciebie?

2) metoda ta nie działa z buforowaniem wyjścia gzip

3) jeśli spłukiwania zbyt często, będziesz wysyłając niemal pustą paczkę na kolor, który może rzeczywiście zwiększyć czas ładowania (na powolne, hałaśliwych połączeń).

4) po spłukiwania, nie można wysyłać żadnych więcej nagłówków

5) (niewielki problem) odpowiedź serwera przyjdzie pakietowego kodowania, co oznacza, że ​​klient nie będzie wiedział z góry rozmiaru (dlatego nie wyświetli „x% done” podczas pobierania pliku).

Z drugiej strony, jeśli można oczekiwać, aby uruchomić skrypt na zbyt długo (ponad 20 sekund), to może być konieczne, aby wysłać jakieś dane (przestrzenie, na przykład), aby utrzymać przeglądarki z rozrządu z połączenia.

Odpowiedział 09/12/2008 o 15:10
źródło użytkownik

głosy
5

Wadą jest to, że nie można gzip zawartości, a także zaczerwienienie go AFAIK, więc zawsze wolał gzip zamiast koloru.

Niektóre wersje Microsoft Internet Explorer będzie tylko zacząć, aby wyświetlić stronę po otrzymaniu 256 bajtów wyjścia, więc może trzeba wysłać dodatkowe spacje przed płukaniem, aby uzyskać te przeglądarki, aby wyświetlić stronę.

To sprawia, że ​​to nie pomysł, jak się wydaje wyściółka więcej danych nie jest bardzo przydatna.

Odpowiedział 09/12/2008 o 14:58
źródło użytkownik

głosy
3

Myślę, że spłuczka jest naprawdę w porządku mechanizm strojenia. Przeglądarki używać tylko około 8 wątków do pobrania zawartości (w zależności od przeglądarki). Jeśli masz 15 zdjęć, przeglądarka rozpocznie pobieranie 8 zdjęć i niczego innego nie będzie pobierał dopóki jeden z nich zakończy, to będzie rozpocząć pobieranie następny obraz, itd spłukując po nagłówku, to w zasadzie mówi przeglądarkę co może rozpocząć pobieranie. W tym czasie reszta strony jest dostarczany (tj .5 sekund później), przeglądarka może już zakończone pobieranie plików CSS i JavaScript. To uwolni pobierania tematów dla innych treści.

Prawdopodobnie nie chcesz używać koloru w dowolnym innym miejscu, niż zaraz po nagłówku. Przeglądarka zwykle nie odda niezamknięte tagi html, więc dostarczanie częściowego strony nie będą szybciej wyświetlać dowolne rzeczy. Starsze wersje IE nie wyświetla niczego w ogóle, aż otrzymana jest pewna ilość danych, czy dostawa jest kompletna strona.

Odpowiedział 30/03/2010 o 14:11
źródło użytkownik

głosy
2

Następujący punkt Piskvor - jeśli spodziewasz się 20s + czekaj, może być lepiej zapewniając podstawową stronę (które mogą być skompresowane) i przy użyciu Ajax zaktualizować stronę, gdy powolny proces zakończył. Zdajesz zacząć naruszają podstawową przydatność html statycznej, choć.

Odpowiedział 09/12/2008 o 15:17
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more