Skocz do zawartości

Includowanie podstron


T800

Rekomendowane odpowiedzi

Witam, mam następujący problem:

Chcę użyć funkcji include do ładowania treści w głównym bloczku na stronie. Problemem jest to, że w innym bloczku znajduje się lista, która jest wynikiem zapytania sql do bazy. Moją intencją jest to, aby po wejściu na stronę ta lista ładowała się tylko raz, niezależnie od tego czy użytkownik wchodzi na podstrony czy nie.

Teraz pytanie: czy jeżeli user wejdzie na jakąś podstronę (podstrona podpięta poprzez include()) to ten bloczek (który oczywiście nie nalezy do tej podstrony) ponownie wykona zapytanie sql?

Odnośnik do komentarza
Udostępnij na innych stronach

Wykonywany jest cały kod "głównego" pliku PHP, a funkcja include wstawia kod do głównego z innego pliku wiec jaka jest odpowiedź ?

Jeśli nie chcesz wykonywać ponownie zapytań zainteresuj się szeroko pojętym mechanizmem cachowania danych wykonanego skryptu...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A po co takie kombinacje ? Jeśli nie masz dużego ruchu rzędu setek wejść na minutę nie ma też generowanego dużego obciążenia.

Chyba, że wykonywane zapytanie jest wyjątkowo złożone mogące wywalać http 500 {wewnętrzny błąd serwera} to wtedy warto zastosować z cache.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

a require_once() ?

A coś z nią nie tak ?

Cache to nic strasznego, najprościej w skrócie i pewnie z błędami :

<?php
$filename="cache/lista.txt";
if (file_exists($filename) AND time() - filemtime($filename) < 86400)
$text = file_get_contents($filename);
else
{
$text = zapytanie_do_bazy_danych;
file_put_contents($filename, $text);
}

echo $text; //wyswietla liste
?>

logo-stat4seo-blue-small.png

Odnośnik do komentarza
Udostępnij na innych stronach

Nie warto w takim wypadku tworzyć cache na pliku. mySQL ma własny mechanizm cache dla kwerend.

W skrócie cache na plikach dla małych witryn jest niepotrzebne a dla dużych witryn skomplikowane w implementacji. Dla większych witryn powinno się używać plików tymczasowych i rename a nie file_put_content bo userzy zobaczą sieczkę podczas uaktualniania cache.

Odnośnik do komentarza
Udostępnij na innych stronach

Dla dużych serwisów to nie nie plikach tylko w pamięci RAM z wykorzystaniem oprogramowania Memcached które jest wysoce wydajne i skalowane ;

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności