Heim >Backend-Entwicklung >PHP-Tutorial >Ich habe in dem von mir geschriebenen PHP-Framework statisches Seiten-Caching implementiert, bei dem es sich auch um Datei-Caching handelt. Kann es das Laden von Seiten beschleunigen?

Ich habe in dem von mir geschriebenen PHP-Framework statisches Seiten-Caching implementiert, bei dem es sich auch um Datei-Caching handelt. Kann es das Laden von Seiten beschleunigen?

WBOY
WBOYOriginal
2016-10-11 14:23:281034Durchsuche

Ich habe in dem von mir geschriebenen PHP-Framework statisches Seiten-Caching implementiert, bei dem es sich auch um Datei-Caching handelt. Kann es das Laden von Seiten beschleunigen?

Antwortinhalt:

Ich habe in dem von mir geschriebenen PHP-Framework statisches Seiten-Caching implementiert, bei dem es sich auch um Datei-Caching handelt. Kann es das Laden von Seiten beschleunigen?

Natürlich ist es möglich, aber Sie sollten auf den Zeitpunkt der Ausgabe des statischen Caches achten. Wenn die gleiche Menge an Programmcode vor der Anzeige des statischen Caches und dem Rendern der dynamischen Seitenausgabe übergeben wird, verbessert sich die Seitenladegeschwindigkeit wird natürlich nicht viel sein.

Wenn Sie PHP zum Generieren des Caches verwenden, sollten Sie vor dem Start der Controller-Logik eine Cache-Beurteilung hinzufügen. Wenn diese beurteilt wird, wenn der Controller die Vorlage rendert, ist der Effekt der Leistungsverbesserung nicht offensichtlich.

Ich werde im Folgenden über eine Methode sprechen, die keine Teilnahme von PHP an der Cache-Generierung und -Nutzung erfordert, die definitiv effizienter ist als jedes Caching-System, das die Teilnahme von PHP erfordert
Das wird mit Nginx implementiertfastcgi_cache, wie zum Beispiel das Caching von WordPress:

<code>fastcgi_temp_path /png/nginx/1.5.7/ngx_fcgi_tmp;
fastcgi_cache_path /png/nginx/1.5.7/ngx_fcgi_cache levels=1:2 keys_zone=WORDPRESS:512m inactive=1d max_size=1g;
fastcgi_cache_valid 200 301 302 1d; #缓存1天(day)
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key $request_method://$host$request_uri;
location ~ \.php$ {
    fastcgi_cache WORDPRESS;
}</code>

PHP muss nur die Cache-Löschfunktion implementieren:

<code>PHP示例代码purge.php:
以下脚本要清除页面 GET://www.example.com/sample-page 的缓存:
/png/nginx/1.5.7/ngx_fcgi_cache/5/b6/abad4d0ad087b7eecaac98d0a2a08b65
<?php
header("Cache-Control: no-cache, must-revalidate, max-age=0"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
$dir = '/png/nginx/1.5.7/ngx_fcgi_cache';
$md5 = md5('GET://www.example.com/sample-page');
$cache = $dir.'/'.substr($md5, -1, 1).'/'.substr($md5, -3, 2).'/'.$md5;
# 其中substr($md5, -3, 2)的-3表示从字符串$md5倒数第3个位置开始,截取长度为2的字串,也就是b6.
if (@unlink($cache)) {
    echo '清除缓存成功。';
} else {
    echo '清除缓存失败。';
}</code>

Allgemeine PHP-Frameworks verfügen über integrierte Tags, und diese integrierten Tags müssen vom Framework in native PHP-Skripte analysiert werden. Anschließend wird es zur Ausführung an cgi übergeben. Wenn ein Cache generiert wird, kann der Prozess des Parsens von Tags weggelassen werden, was natürlich die Geschwindigkeit erhöht

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn