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

Buforowanie wyjścia z PHP

Buforowanie wyjścia z PHP - buforowanie wyjścia po stronie serwera

Teraz, z tym przykładem w naszych rękach, zobaczmy jak możemy użyć buforowania wyjścia po stronie serwera. Zastosujmy prosty przykład, gdzie zawartość bufora będzie składowana jako plik:

<?php 
//   check if there is a cached version 
if ( file_exists( 'cachefile.txt' ) ) {
   //   if there is a cached version read content and display
  readfile ( 'cachefile.txt' );
  exit();
}
//   if there is not a cached version start output buffering
ob_start();
//   display some HTML ( this will be stored in the buffer )
?>
<html>
<head>
<title>Caching server output</title>
</head>
<body>
<h2>This page is a cached Page</h2>
</body>
</html>
<?php 
$bufferContent = ob_get_contents();
   //   get buffer content
ob_end_flush();
   //   clean and display buffer content in the browser
$fp = fopen ( 'cachefile.txt' , 'w' ) or die ( 'Error opening cache file' );
   //  write buffer content to cache file
fwrite ( $fp , $bufferContent );
fclose( $fp );
?>

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

This page is a cached Page

Zawartość pliku buforu 'cachefile.txt' jest ten sam HTML dołączony ze skryptu:

Caching server output

This page is a cached Page

Oczywiste jest to, że ten skrypt jest bardzo prosty, lecz ukazuje potęgę możliwości buforowania, które PHP ma wbudowane w sobie, kiedy połączymy ze sobą funkcję buforowania wyjścia. Mając cały ten potencjał w naszych rękach, następnym krokiem jest buforowanie oddzielnych sekcji naszej strony internetowej, które zazwyczaj mają sekcję nagłówka, ciała i stopki. Byłoby dobrze zastosować te techniki buforowania do tego jak często dane sekcje są aktualizowane. Teraz będziemy się poruszać w tę stronę.

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-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System