頁面靜態化

2022-09-12 10:09:19 字數 3778 閱讀 1870

2015.8.15

關於優化頁面響應時間

方法:1.動態頁面靜態化

2.優化資料庫

3.使用負載均衡

4.使用快取

等動態頁面靜態化

如果頁面中的一些內容不經常改動,動態頁面靜態化是非常有效的加速方法。

實質:生成靜態的html檔案

好處:減少伺服器指令碼的計算時間,降低伺服器的響應時間,減少伺服器壓力

說明:不適用內容經常變化的應用 如:微博

關於動態url位址設定靜態形式(偽靜態)

靜態化介紹

php靜態化:純靜態(區域性純靜態,全部純靜態),偽靜態

純靜態化案例實現

buffer認知

配置:buffer就是乙個緩衝區,乙個記憶體位址空間,主要用來儲存內容

若開啟緩衝區便可以將資料先進過buffer緩衝區

開啟方式:在php.ini中修改output_buffering=on

或者在php**中使用ob_start();函式

ob_get_contents();//獲取緩衝區內容

php如何實現頁面純靜態化

基本方式:使用file_put_contents()函式

使用php內建快取機制實現頁面靜態化 -output_buffering

ob函式

ob_start();開啟輸出控制緩衝

ob_get_contents();返回資料緩衝區內容

ob_clean();清空資料緩衝區

ob_get_clean();得到當前緩衝區的內容並刪除當前輸出緩衝區

實現方式:使用ob函式獲得緩衝內容,再使用file_put_contents()寫入html檔案

1.鏈結資料庫去的資料

2.將獲取的資料填充到模板檔案中

3.需要把動態頁面轉為靜態頁面,生成靜態化檔案

第三步:

ob_start

();

require_once

('./templates/index.htm'

);

if

(file_put_contents

('index.html'

,ob_get_clean

()))

else

如mycms

如何觸發系統生成純靜態化頁面

模板檔案關鍵**(模板檔案雖然定為.php檔案,但是是html的格式)

class

="plan_1"

>src

="/template/public/image/plan.png"

>

新聞條目***xx

style="

width

:325px

;float

:right

;margin

-top

:10px;"

>

<?

php

foreach

($data

as$k

=>$v)

?>

1.頁面新增快取時間

<?

php

//filemtime()獲取檔案的最近修改時間 判斷檔案是否有效300秒

if

(is_file

('./index.html'

)&&(

time

()-filemtime

('./index.html'

))<

300)

else

//開啟緩衝區

ob_start

();

//引入模板檔案

require_once

('./templates/index.php'

);

file_put_contents

('./index.html'

,ob_get_contents

());

}

這樣訪問index.php便會訪問到靜態頁面

2.手動觸發方式

直接呼叫控制器方法生成靜態頁面

2015.8.17

3.crontab定時掃瞄程式

1.使用putty鏈結上伺服器,

2.使用crontab -e命令修改crontab檔案

3.輸入*/1 * * * * php /data/state/index.php (每一分鐘執行index.php的程式)

區域性動態化案例實現

靜態化頁面中如果想載入動態的內容如何處理。。

ajax技術

偽靜態php處理偽靜態

path_info模式,(nginx伺服器預設不支援path_info模式,需要配置才可以)

<?

php

/*

通過正則表法師去分析偽靜態url位址

轉為

*/

// /2/1.html

if

(preg_match

('/^\/(\d+)\/(\d+).html/'

,$_server

['path_info'

],$arr

))else

print_r

($arr

);

//print_r($_server);

web伺服器rewrite配置以及案例

apache下rewirte配置

1.虛擬網域名稱配置

1.在httpd.conf檔案中開啟相關模式

2.httpd_vhosts.conf配置檔案配置相關資訊

該vhost檔案是在上面中配置好的conf檔案

然後在c:\windows\system32\drivers\etc 中的host檔案中便配置好的虛擬網域名稱

2.偽靜態配置

在vhost中,在虛擬網域名稱下面加入

在虛擬網域名稱的根標籤

rewriteengine on

rewriterule ^/test_wei/([0-9]*).html$ /test_wei.php?id=$1nginx下rewrite配置

再此,若該目錄下有test_wei/1.html的靜態頁面時,訪問卻是會訪問到偽靜態頁面

所以還需要配置,一下資訊,使若有靜態頁面,先訪問到靜態頁面

rewritecond %% !-d

rewritecond %% !-f

nginx下rewrite配置

rewirte ^/test_wei/(\d+)\.html$ /test_wei.php?id=$1 last;

頁面靜態化

隨著 的內容的增多和使用者訪問量的增多,無可避免的是 載入會越來越慢,受限於頻寬和伺服器同一時間的請求次數的限制,我們往往需要在此時對我們的 進行 優化和伺服器配置的優化。一般情況下會從以下方面來做優化 什麼是靜態化?純靜態 將php程式生成靜態的html檔案,儲存到伺服器的磁碟中。客戶端訪問的時候...

頁面靜態化

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 ...