2013-07-01 112 views
0

我只是想知道如果通過PHP加載的文件包括被越來越瀏覽器(我的預期行爲)瀏覽器緩存php包含文件嗎? (PHP和模板)

IM試圖找出對我的設計模板引擎更好的辦法緩存..

我一直使用php包括頁眉,頁腳等。對於模板

但現在考慮回到使用Dreamweaver模板瓦特/ c基本上寫每個網頁w /完整的文檔代碼(包括標題,頁腳和所有),並於,比如說,頭部分的更新,Dreamweaver將重寫使用上述模板中的所有頁面。

我曾經認爲這是一種粗糙的,不討人喜歡的模板方式,但現在我意識到'這真的很聰明..沒有更多的進程和其他進程,只是簡單的好舊頁面服務大部分所需視覺數據。我「認爲」這比apache爲每個包含運行更多的線程要快。而且,該頁面被完全緩存..

喜歡逛home.php第二次將導致以最小的帶寬成本.. VS PHP的包括,如果沒有高速緩存,具有發送,例如的header.php數據,一次又一次地在瀏覽器中每次訪問。

而且,DW模板實際上使我更容易代碼/設計,其中包括PHP在visiual意見往往渲染/工具

只是想知道...

PS 作爲背景資料,我「已經實際使用DW模板瓦特/ PHP模板(有點用DW的混合方式)..我已經得到了很舒服瓦特/此方法,並發現它是真的直線前進..因此,即時通訊不是一個真正的陌生人要麼DW或PHP模板。

回答

4

PHP的include與瀏覽器無關,瀏覽器不知道任何內容在服務器上。所有的瀏覽器都可以看到一個很長的HTTP文檔,它在服務器上的組裝方式並不重要。瀏覽器將緩存它一切。

你想要的是緩存文件服務器端,所以它不必在每個請求上重新組合。

  SERVER SIDE     CLIENT 

+-----------+  +--------+ | +---------+ 
|   |  |  | | |   | 
| PHP | --> | Apache | --|--> | browser | 
|   |  |  | | |   | 
+-----------+  +--------+ | +---------+ 

    ^   ^    ^
     |    |     | 
include happens  document   sees only 
    here   already fully  complete HTML 
       assembled here document regardless 
+0

tnx快速輸入.. – BrownChiLD

2

您知道,瀏覽器如何生成頁面並不重要。您可以使用PHP,Python,Java,Ruby或其他語言 - 它根本不管用。 Apache服務器(在PHP的情況下)解析腳本並將生成的HTML頁面返回給瀏覽器。它是由瀏覽器緩存默認 - 除非你使用編譯<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">這表明該頁面不應該被緩存的瀏覽器。

當您存儲和在HTML,而不是它只是節省您解析階段,從而節省服務器上的資源,並普遍較快是一個腳本來提供網頁。這就是爲什麼最發達的web框架包括生成,存儲和服務於解析處理的頁面,而不是一個腳本「原始」的能力。典型的情況是在PHP中檢查頁面是否被修改。如果它被修改,則重新生成頁面;如果沒有 - 提供HTML代碼而不是腳本代碼。您也可以基於此方案超時。它是在頁面生成需要從一個不經常更改數據庫中獲取大量的信息,你的web應用程序的部分特別有用。例如,在產品或產品類別列表較長的頁面上 - 分別添加新產品或產品類別時更新頁面。因此,「模板化」(實際上是爲頁面的完全解析版本提供服務,而不是其腳本原件)可以節省服務器資源和頁面交付時間,而不是瀏覽器請求。