Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!
Kategorie

Kategorie

Kategoria wyżej
O autorze

O autorze

Łukasz (Ace) Bobiński
Reklama

Reklama

Podobne Artykuły

Poniżej znajduje się lista podobnych artykułów:
Brak powiązanych artykułów

Buforowanie wyjścia z PHP

Wczytanie strony dynamicznej trwa dłużej niż statycznej, co zmusza odwiedzającego do czekania i dobrze wiemy, że oni nie będą czekać zbyt długo. Buforowanie wyjścia to potężna technika, którą można wykorzystać do skrócenia czasu oczekiwania.

Jeśli spojrzymy nostalgicznie na odległe dni rozwijania się stron, składających się z kilku statycznych stron HTML, głównie tekst i brak obrazków, zauważymy, że proces wysłania strony z serwera do przeglądarki był bezbolesny i bezpośredni. Serwer musiał przechwycić jakieś pliki z systemu plików i przesłać je szczęśliwie do przeglądarki użytkownika, która otrzymywała przetworzoną stronę prawie natychmiast.

Kiedy strona została pokazana, przeglądarka zwykle oznacza buffor aby przechowywał stronę wynikową na komputerze użytkownika, do czasu nowego żądania tej strony. Z nowym żądaniem dla tej strony, przeglądarka szybko sprawdzała czy strona na serwerze nie została zmieniona, jeśli nie to mogła wyświetlić buffor, który był przechowywany lokalnie na dysku. Wspomnienia!

Jak dobrze wiecie, strony stały się coraz to bardziej złożone, i nowe techniki zostały odkryte na potrzeby dynamicznego dostarczania treści. Większość stron migrowało, ze statycznych, na dynamiczne schematy, zgodnie z obecnymi potrzebami zaspokojenia satysfakcji spragnionych treści odwiedzających. Ten nowy kontekst szybko popsuł dobrze ustabilizowany proces opisany powyżej.

Teraz, prawie każde żądanie uruchamia różnego rodzaju pośrednie procesy, które wprowadzają odczuwalne opóźnienie podczas dostarczania strony do użytkownika. Jeśli jesteś obeznany z przetwarzaniem PHP, wiesz, że serwer odwoła się do silnika PHP aby przetworzyć skrypt, i może te skrypty połączą się z bazą danych i tak dalej, w rezultacie powoduje to opóźnienie między żądaniem użytkownika, a stroną wysłaną do przeglądarki

Jeśli utrzymanie naszej prostej aplikacji jest niemożliwe, ona będzie stawała się coraz bardziej rozbudowana, i w łatwy sposób pakuje nas w kłopoty związane ze wzrostem opóźnienia. Jest wiele możliwości na rozwiązanie tych problemów. W tym artykule, zobaczymy jak buforowanie po stronie serwera może w łatwy sposób pomóc nam zaimplementować prosty lecz potężny mechanizm w PHP, który pozwoli uniknąć, lub zredukować opóźnienie pomiędzy serwerem wysyłającym dynamiczną stronę, a użytkownikiem oglądającym ją.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (4)
literatura piękna
Środa 09 Kwiecień 2008 10:48:08 pm - ocochodzi <suntsu_at_poczta.fm>

Zawiodłem się. Stosuj ob_start() i cashuj w plikach - tyle niesie artykuł. Rozwklekly, przegadany sugerujący na początku, że zdradzi coś więcej. Niewielkie know how jakie niesie artykuł to nic. Lepszy rydz niż nic. Niestety poziom, że tak powiem prozy jest...porażający. Ludzie, czy wy oczu nie macie czy jak?

Kwiatki:

"Ten skrypt jest prostolinijny w swojej funkcjonalności"

Prostolinijny skrypt? Słowo "prostolinijny" odnosi się do cżłowieka.

"Buforowanie jest bardzo dużym tematem."

Temat może być szeroki, ważny, rozległy. Takie infantylizmy spotyka się u dzieci.

"Odkąd jestem zwolennikiem programowania zorientowanie obiektowego"

1) Literówka "zorientowanie obiektowego". 2) potworek jezykowy. Po polsku mówimy "programowanie obiektowe". Tak się pisze w poważnych pracach. Oczywiscie można sobie dodawać powagi pisząc np. koordynaty zamiast współrzędne...

"Teraz, wstęp za nami, teraz zobaczymy jak..."

Jakieś drgawki.

"Danymi wyjściowymi dla powyższego skryptu jest plik HTML:"

Nie zgadza się liczba. Można było z tego wyjść pisząc "dane stanowi plik".

"Jak wyżej, odkąd większość stron internetowych jest złożona z sekcji nagłówka, ciała i stopki, zamierzamy wprowadzić buforowanie po stronie serwera dla każdej z tych części."

W oryginale było since?

"Teraz, z tym przykładem w naszych rękach, zobaczmy jak możemy użyć buforowania wyjścia po stronie serwera."

Z przykładem w naszych rękach. W naszych własnych rękach! Po polsku piszemy "dysponując tym przykładem". W "naszych rękach" brzmi szucznie. Przypomina mi się pogróżka pewnego czarnego charakteru z Wiedźmina: "tymi rękami! Moimi rękami". Po prostu beka :D

"Zastosujmy prosty przykład, gdzie zawartość bufora będzie składowana jako plik:"

Zastosować można pomysł, technikę, twierdzenie, wzór. Przykład jest ilustracją. Można było napisać "na mocy przykładu" jeśli czytelnik jest oswojony z tokiem wykładu w stylu matematyczno-technicznym, a jako informatyk powinien być.

"Odkąd jestem zwolennikiem programowania zorientowanie obiektowego, rekomenduje używanie dobrej i sprawdzonej klasy do buforowania, takiej jak Pear::Cache_Lite".

I po co było "takiej jak"? Jesli chodziło ogólnie o gotowce to było napisac "takich jak", a jeśli samego Cashe_Lite, to po prostu "rekomenduję Cashe_Lite".

Na koniec artykułu autor traktuje czytelnika jak uczniaka:

"Przed wami jest druga droga do przebycia."

Druga? Pewnie mialo być długa.

"ukryć natychmiast proces od odwiedzającego i postępować zgodnie do naszej logiki aplikacji."

Ukryć od? Zgodnie do? buforowania Mistrz Yoda uczy nas?

"...strony stały się coraz to bardziej złożone, i nowe techniki..."

po co ten przecinek?

Buforowanie
Poniedziałek 14 Maj 2007 8:29:47 am - stachoo

Prowadzę kilka serwisów internetowych opartych o php+MySQl. Rozwój serwisów i liczby uzytkowników spowodował że MySQL nie wyrabiał z kolejką zapytań.
(Uprzedzam że zapytania są zbudowane optymalnie). Serwisy zaczęły się "żabić'. Zastosowałem pół roku temu technikę buforowania stron i zapomniałem że MySQL istnieje. Baza poprostu się "nudzi". Jedyne obciążenie dla bazy to wyszukiwanie. Oszczedność czasu i kosztów.

Pozdrawiam i polecam buforowanie stron. StachOO

Buforowanie nie działa przy antywirusowych bramkach
Czwartek 02 Listopad 2006 11:47:54 am - wrebus

Ostatnio miałem właśnie taki przypadek że nagle buforowanie przestało działać w moim skrypcie, jak się okazało administrator serwera wstawił bramkę fortineta z filtracją www i buforowanie szlag trafił bo antywirus sam buforował całą stronę i dopiero przesyłał do klienta.
Na szczęście aplikacja działa lokalnie więc poprosiłem admina o wyłączenie skanowanie tej strony i jest ok.

Inne wykorzystanie buforowania
Sobota 11 Marzec 2006 11:58:39 am - mysz

Funkcje z pakietu OB można wykorzystać także do innych celów, jak na przykład konwersji kodowania strony (ob_start('ob_iconv_handler') lub ob_start('mb_output_handler')), albo do kompresji za pomocą gzip: ob_start('ob_gzhandler').
Aby wykorzystać obydwie z tych możliwości: ob_start(array('ob_gzhandler', 'mb_output_handler'));

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System