頁面靜態化

2021-08-16 23:27:50 字數 1756 閱讀 5201

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

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

1.  為什麼要靜態化?

一、加快頁面開啟瀏覽速度,因為無需連線資料庫;

二、有利於搜尋引擎優化seo;

三、減輕伺服器負擔,瀏覽網頁無需呼叫系統資料庫;

五、資料庫出錯時,不影響**正常訪問。

生成html文章雖操作上麻煩些,程式上繁雜些,但為了更利於搜尋,為了速度更快些,更安全,這些犧牲還是值得的。

2.  靜態化分類

頁面靜態化分為兩種,一種是偽靜態,即url 重寫,一種是真靜態化

php

偽靜態:利用apachemod_rewrite實現url重寫的方法。未靜態不是真正的靜態頁面,只是形式上的。如news.php?lang=cn&class=1&id=2 重寫為news-cn-class1-id2.html

3.  靜態化的缺點

1. 內容不能及時更新;(僅純靜態)

2. 需要更大的伺服器硬碟容量(僅純靜態)

4.  靜態化的方法

1. 利用php模板生成靜態頁面

2. 使用php輸出控制函式(output control)/ob快取機制生成靜態頁面

比如某個商品的動態詳情頁位址是:

那麼這裡我們根據這個位址讀取一次這個詳情頁的內容,然後儲存為靜態頁,下次有人訪問這個商品詳情頁動態位址時,我們可以直接把已生成好的對應靜態內容檔案輸出出來。

<?php

$gid = $_get['gid']+0;//

商品id

$goods_statis_file ="goods_file_".$gid.".html";//

對應靜態頁檔案

$expr = 3600*24*10;//

靜態檔案有效期,十天

if(file_exists($goods_statis_file))else

}else

?>

注:php ob快取(控制瀏覽器cache)

1、ob_start函式一般主要是用來開啟快取,當緩衝區啟用時,所有來自php程式的非檔案頭資訊均不會傳送,而是儲存在內部緩衝區。

2、ob_get_contents函式主要用來獲取快取中的內容以字串形式返回,注意此函式必須在ob_end_clean函式之前呼叫,否則獲取不到快取內容。

3、ob_end_clean函式主要是清空快取中的內容並關閉快取,成功則返回true,失敗則返回false

4.  使用nosql從記憶體中讀取內容(其實這個已經不算靜態化了而是快取);

以memcache為例:

<?php

$gid = $_get['gid']+0;//

商品id

$goods_statis_content ="goods_content_".$gid;//

對應鍵$expr = 3600*24*10;//

有效期,十天

$mem = new memcache;

$mem--->connect('memcache_host',11211);

$mem_goods_content =$mem->get($goods_statis_content); 

if($mem_goods_content)else

?>

頁面靜態化

隨著 的內容的增多和使用者訪問量的增多,無可避免的是 載入會越來越慢,受限於頻寬和伺服器同一時間的請求次數的限制,我們往往需要在此時對我們的 進行 優化和伺服器配置的優化。一般情況下會從以下方面來做優化 什麼是靜態化?純靜態 將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.避免每次訪問都要查詢資料庫的 大量 資料 2.採用主 頁靜態的方式是為 提公升主頁的訪問效率,因為主頁是 訪問量最大的頁面 1.準備主 頁靜態化工具方法 contents.crons.py from collections import ordereddict from dja...