頁面靜態化

2021-07-15 07:50:51 字數 1731 閱讀 1482

隨著**的內容的增多和使用者訪問量的增多,無可避免的是**載入會越來越慢,受限於頻寬和伺服器同一時間的請求次數的限制,我們往往需要在此時對我們的**進行**優化和伺服器配置的優化。

一般情況下會從以下方面來做優化

什麼是靜態化?

①純靜態:將php程式生成靜態的html檔案,儲存到伺服器的磁碟中。客戶端訪問的時候直接輸出。不用指令碼解釋。在流量非常大的時候(比如每天有上百萬的訪問量的時候)會起到很好的效果。也就是說伺服器端實實在在的存在這個html頁面。

原理:在使用者訪問php程式時,首先檢測靜態的html檔案是否存在,如果存在直接輸出靜態檔案,如果靜態檔案不存在,查詢資料庫,生成靜態檔案,並輸出。

html靜態頁(真靜態)的好處有三點:一是減少伺服器對資料響應的負荷,二是載入不用調動資料庫,響應速度快。三是便於優化引擎。

缺點也有三點:一是維護不方便,每次都要手動生成。三是空間占用比較大。三是生成的檔案多了,伺服器對html檔案的響應負擔也較重。

②偽靜態:沒有靜態檔案的靜態化

url重寫的缺點:我看只有乙個,那就是效率不如生成html的,因為它不是真正意義上的靜態頁,每次請求是要讀取資料庫的。但你可以用快取技術來補償一下。

主要函式:

ob_start()函式:開啟輸出緩衝區.

函式格式

void ob_start(void)

說明:當緩衝區啟用時,所有來自php程式的非檔案頭資訊均不會傳送,而是儲存在內部緩衝區。為了輸出緩衝區的內容,可以使用ob_end_flush()或flush()輸出緩衝區的內容。

flush:重新整理緩衝區的內容,輸出。

函式格式:flush()

說明:這個函式經常使用,效率很高。

ob_get_contents :返回內部緩衝區的內容。

函式格式:string ob_get_contents(void)

說明:這個函式會返回當前緩衝區中的內容,如果輸出緩衝區沒有啟用,則返回 false.

ob_get_length:返回內部緩衝區的長度。

函式格式:int ob_get_length(void)

說明:這個函式會返回當前緩衝區中的長度;和ob_get_contents一樣,如果輸出緩衝區沒有啟用,則返回 false.

ob_end_clean:刪除內部緩衝區的內容,並且關閉內部緩衝區

函式格式:void ob_end_clean(void)

說明:這個函式不會輸出內部緩衝區的內容而是把它刪除

ob_end_flush: 傳送內部緩衝區的內容到瀏覽器,並且關閉輸出緩衝區

函式格式:void ob_end_flush(void)

說明:這個函式傳送輸出緩衝區的內容(如果有的話)

ob_implicit_flush:開啟或關閉絕對重新整理

函式格式:void ob_implicit_flush ([int flag])

說明:預設為關閉緩衝區,開啟絕對輸出後,每個指令碼輸出都直接傳送到瀏覽器,不再需要呼叫 flush()

ob_start(); //開啟輸出緩衝區

$cachetime = 10; //設定快取頁面過期時間(以秒為單位)

$cachedir = 'obtest.html'; //設定快取頁面檔案目錄

//判斷檔案是否存在或過期重新生成快取檔案

if(!is_file($cachedir) || time()-filemtime($cachedir)> $cachetime)else

頁面靜態化

header content type text html charset utf8 set time limit 0 url str file get contents url var dump str die reg isu preg match all reg,str,arr var dump...

頁面靜態化

隨著 的內容的增多和使用者訪問量的增多,無可避免的是 載入會越來越慢,受限於頻寬和伺服器同一時間的請求次數的限制,我們往往需要在此時對我們的 進行 優化和伺服器配置的優化。一般情況下會從以下方面來做優化 1.為什麼要靜態化?一 加快頁面開啟瀏覽速度,因為無需連線資料庫 二 有利於搜尋引擎優化seo ...

頁面靜態化

頁面靜態化的作用 1.避免每次訪問都要查詢資料庫的 大量 資料 2.採用主 頁靜態的方式是為 提公升主頁的訪問效率,因為主頁是 訪問量最大的頁面 1.準備主 頁靜態化工具方法 contents.crons.py from collections import ordereddict from dja...