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 - składanie wszystkiego w jedną całość

Poniżej jest cały skrypt:

<?php 
//  define createCache
function createCache ( $content ,  $cacheFile ) {
  $fp = fopen( $cachefile , 'w' );
  fwrite( $fp , $content );
  fclose( $fp);
}
// define getCache
function getCache ( $cacheFile ,  $expireTime ) {
  if ( file_exists ( $cacheFile ) && filemtime ( $cacheFile ) >( time() - $expireTime ) ) {
    return file_get_contents( $cacheFile );
  }
  return false;
}
//   start output buffering
ob_start();
//  check if a valid header cache exists
if ( !$header = getCache( 'headerCache.txt' , 86400 ) {
//  display header section
?>
<html>
<head>
<title>Cached Page</title>
</head>
<body>
The header section is updated on a daily basis.
<?php 
$header = ob_get_contents();
ob_clean();
createCache( $header , 'headerCache.txt' );
}
// check if a valid body cache exists
if ( !$body = getCache( 'bodyCache.txt' , 10 ) {
//  display body section
?>
<h1>This section is updated every 10 seconds.</h1>

<?php 
$body = ob_get_contents();
ob_clean();
createCache( $body , 'bodyCache.txt' );
}
// check if a valid footer cache exists
if ( !$footer = getCache( 'footerCache.txt' , 86400 ) {
//  display footer section
?>
The footer section is updated on a daily basis.
</body>
</html>
<?php 
$footer = ob_get_contents();
ob_clean();
createCache( $footer , 'footerCache.txt' );
}
//   stops output buffering
ob_end_clean();
//   display the complete page
echo $header .  $body .  $footer;
?>

Odkąd jestem zwolennikiem programowania zorientowanie obiektowego, rekomenduje używanie dobrej i sprawdzonej klasy do buforowania, takiej jak Pear::Cache_Lite, która pomaga utrzymać twój kod spójnym, który jest wiarygodnym mechanizmem obsługi buforowania dla stron internetowych.

Przed wami jest druga droga do przebycia. Buforowanie jest bardzo dużym tematem. Jedno jest pewne: buforowanie wyjścia po stronie serwera z użyciem funkcji które udostępnia PHP jest dobrym dodatkiem podczas budowy dynamicznych stron internetowych. Powodzenia!

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