這一期給大家詳解下頁面靜態化
1、靜態化頁面是什麼?
php腳本把這些渲染出來。這個是時候頁面是動態顯示,前臺展示的數據頁面是動態,靜態化頁面就是將這個頁面直接轉成.html靜態的頁面,這個時候頁面顯示的時候不再是動態的,只有等頁面只有更新數據的時候才會再次緩存新的數據到靜態文件上。簡單講的可以這樣子理解。
關於靜態化的優點,這邊不會在具體的介紹,下次有機會的話給大家講下為什麼要靜態化頁面,目前可以這樣子理解就是靜態化後的頁面訪問速度變得更快,大流量訪問減少延遲。
下面直接代碼演示如何寫靜態化頁面,以下已php語言為例子
靜態化寫法
ob_start()這個php自帶的函數 開啟緩存
(1)第一種寫法是通過ob_start()緩存來輸出
在php文件中編寫html代碼,然後用bo_get_content獲取到,然後輸出到html文件,類似於:
ob_start(); //打開輸出控制緩存
echo "
<title>test頁面/<title>Hello world";$out = ob_get_contents(); //獲取緩衝區的內容
ob_end_clean(); //關閉輸出緩存
$fps = fopen("demo.html", "w");//打開demo.html文件開啟寫入權限
if (!$fps) {
echo "error";die;
} else {
fwrite($fps, $out); //寫入文件
fclose($fps); //關閉文件
echo "success";
}
?>
上面這種寫法比較混亂,語法結構不是很好,也不好維護,不推薦使用
(2)先寫好靜態文件,在使用替換語法更新內容
我們首先創建好一個靜態文件,要替換的文件部分標出來,如{title},在php程序中用file_get_content獲取html文件的內容,然後進行替換,替換之後保存為靜態文件。
靜態頁:
{title}
{content}
這樣子我們就已經寫好了靜態的文件
php文件替換:
$path = "a.html";
$content = file_get_contents($path); //加載模板
//我們使用str_replace 函數 進行替換
$content = str_replace('{th_title}',$title);
$dir = $path ."/html/";
//判斷文件是否存在
if (!file_exists($dir)) {
mkdir($dir);
}
$filename=$dir.'/'.$filename; //這裡就不判斷html是否存在了,因為寫入會覆蓋
$result = file_put_contents($filename,$content);//寫入內容到對應靜態文件中
上面的代碼操作
我們需要先使用file_get_contents獲取模板頁的內容,然後將讀取到的文件再使用str_replace進行標籤的替換,最後再通過file_pu_contents寫入到新文件即可。然後將文件轉成的html。
頁面的靜態化操作就是這麼簡單,有什麼疑問的話可以下面留言。
閱讀更多 OR編程 的文章