在我的網站上有一個靜態頭,其中包含一些圖形&導航等。此內容是靜態的,不必每次都加載。PHP:緩存靜態導航
有沒有辦法把它放在一個HTML文件中,將其緩存在客戶端瀏覽器上,並告訴瀏覽器將該文件包含在頁面的某個位置?
在我的網站上有一個靜態頭,其中包含一些圖形&導航等。此內容是靜態的,不必每次都加載。PHP:緩存靜態導航
有沒有辦法把它放在一個HTML文件中,將其緩存在客戶端瀏覽器上,並告訴瀏覽器將該文件包含在頁面的某個位置?
我能想到的唯一可能是將靜態HTML放到一個單獨的php文件中(在其中設置一些適當的頭文件以允許緩存)並使用JavaScript執行Ajax調用以將文件加載到您的站點。使用jQuery,您可以使用:
$('#navigation').load('navigation.php');
這將使客戶端加載使用,可如果你設置了相應的頭被緩存單獨的GET請求導航。然而,在我看來,這是嚴重的超載,並且可能導致導航在頁面的其餘部分之後加載一段時間,更不用說禁用JavaScript的用戶的兼容性問題了。
「這是一個不好的主意答案」。如何不回答? :-) – 2013-09-29 19:57:08
他問了一個允許緩存的方法,我提供了一個方法來做到這一點;-)我不相信他應該實現這一點,我還提供了爲什麼我相信他不應該這樣做的信息 - 但他是決定在他的情況下是否合適的人。 – TheWolf
好想他沒有問過如何殺死教皇呢! – 2013-09-29 20:01:26
我同意TheWolf,這也是我所建議的。
[編輯:正如安東尼指出,這將不允許單獨緩存頭。]
您可以簡單地將HTML到它自己的PHP文件,包括它的服務器端使用需要的時候:
<?php include 'header.php'; ?>
「header」html將包含在頁面的html中,並且將被瀏覽器緩存(假設發送正確的緩存標頭)。這是在php中包含條件內容的最常用方法。
想要單獨緩存標題的原因是什麼?如果您的應用程序正在生成標準網頁,那麼通過Javascript單獨加載標題將會變得更慢。任何帶寬節省可能可以忽略不計。
如果你決定要動態加載使用JavaScript的內容,一些事情可以做,以增強最終用戶的體驗是:
僅瀏覽緩存整個文件 – 2013-09-29 19:52:41
你需要什麼? – zerkms