Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczna treść jako statyczna
zeczonyswiadek
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.10.2010

Ostrzeżenie: (0%)
-----


Mam plik o nazwie posty.php, który pobiera z bazy 5 rekordów i wyświetla je.
Rekordy w bazie czasem zmieniają się (najczęściej 5 razy dziennie).

Zastanawiałem się, czy istnieje dobry sposób na odciążenie serwera poprzez zastąpienia pliku posty.php statycznym posty.html, który byłby modyfikowany po każdej zmianie w bazie. W ten sposób w ogromnej mierze zmniejszyłbym zasobożerność aplikacji (serwując użytkownikom tylko plik html i wysyłając do bazy zapytania tylko kilka razy dziennie).

1) Co myślicie o tym pomyśle?

Muszę liczyć sie z dużą publiką, a co za tym idzie szansą, że ktoś wejdzie na stronę akurat kiedy plik będzie nadpisywany (i dostanie błąd lub niekompletny plik).

2) Jak mógłbym to rozwiązać?

Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Jedno słowo. Cache.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
zeczonyswiadek
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.10.2010

Ostrzeżenie: (0%)
-----


Mówisz o cache po stronie użytkownika? To nie rozwiązuje mojego problemu przy dużej liczbie nowych uzytkowników.
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(zeczonyswiadek @ 16.12.2011, 15:24:57 ) *
Mówisz o cache po stronie użytkownika?

yyy nie


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
vokiel
post
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Jeśli sam piszesz ten skrypt, to możesz to ładnie zintegrować z cache (oczywiście po stronie serwera). Tworząc cache zapisuj je z długim okresem ważności, a po momencie edycji rekordów przeładowujesz cache. Wtedy użytkownik widzi ciągle aktualne wartości i nie pobiera ich z bazy przy każdym wejściu, każdy użytkownik - nie tylko powracający :-p


--------------------
Go to the top of the page
+Quote Post
zeczonyswiadek
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.10.2010

Ostrzeżenie: (0%)
-----


OK, zatem cache w PHP jest rozwiązaniem, ale wymaga jednak trochę pracy serwera (PHP). Czy znacie jeszcze jakieś inne? Myślałem o czymś podobnym do stworzenia soft linka, który będzie wskazywał na plik w zależności od czasu.
Go to the top of the page
+Quote Post
vokiel
post
Post #7





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Wpisy masz w bazie tak? To jak chcesz zrobić soft linka (a nie sym linka?) do bazy? Chyba musisz wcześniej ten plik wygenerować, prawda?


--------------------
Go to the top of the page
+Quote Post
skleps
post
Post #8





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

Ostrzeżenie: (0%)
-----


Cytat(zeczonyswiadek @ 16.12.2011, 15:48:22 ) *
OK, zatem cache w PHP jest rozwiązaniem, ale wymaga jednak trochę pracy serwera (PHP). Czy znacie jeszcze jakieś inne?


Hmmm... Skoro już nie chcesz użyć cache, to może inna alternatywna metoda "cache", tyle że to tak trochę "na około":
- wyświetlanie odbywa się przez pobieranie określonego pliku z wyświetlaną zawartością, czylipo prostu includujesz plik z dysku, lub po prostu wyswietlasz ten plik posty.html
- generowanie tego pliku odbywa się przez wywołanie innego skryptu, który wywołany z crona np. raz na godzinę.

w takim wypadku wyświetlenie masz danych statycznych, a człowiek nie musi szykować danych.
Ale uwaga: nie wiem co się będzie działo w czasie, gdy skrypt będzie generował plik a ktoś w międzyczasie skrypt wyświetlający o niego poprosi

Nie rozumiem co strasznego jest w zwykłej konstrukcji:

if ((PlikCacheNieIstnieje) OR (PlikCacheJestPrzeterminowany) ) {
$DaneTXT = PObierzDanezBazy();
$ZapiszPlikCache($DaneTXT);
} else {
$DaneTXT = PObierzDanezPlikuCache();
}
WyswietlDane(DaneTXT);

Ten post edytował skleps 17.12.2011, 10:13:45
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:15