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