日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态语言静态化

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态语言静态化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是動態語言靜態化

將現有PHP等動態語言的邏輯代碼生成為靜態html文件,用戶訪問動態腳本重定向到靜態html的過程

注 : 對實時性要求不高的頁面才適合去做動態語言靜態化

?

二、為什么要靜態化

1. 動態腳本通常會做邏輯計算和數據查詢,訪問量越大,服務器壓力越大

2. 訪問量大時可能會造成CPU負載過高,數據庫服務器壓力過大

3. ?靜態化可以降低邏輯處理壓力,降低數據庫服務器查詢壓力

?

三、靜態化的實現方式

第一種:使用模板引擎

( 1 ) 可以使用smarty的緩存機制生成靜態html緩存文件

$smarty->cache_dir = $ROOT."/cache"; //緩存目錄 $smarty->caching = true;//是否開啟緩存 $smarty->cache_lifetime = '3600';//緩存時間

$smarty->display(string template [, string cache_id [,string compile_id]]);

備注:cache_id 緩存id; ?compile_id 編譯文件id

(2) ?清除smarty緩存

$smarty->clear_all_cache();//清除所有緩存 $smarty->clear_cache('file.html'); //清除指定的緩存 $smarty->clear_cache('article.html',$art_id); //清除該模板下的指定緩存號的緩存

?

第二種: 利用ob系列的函數做靜態化緩存 (推薦)

(1) 相關函數

ob_start();//打開輸出控制緩沖 ob_get_contents();//返回輸出緩沖區內容 ob_clean();//清空輸出緩沖區 ob_end_flush();//沖刷出(送出)輸出緩沖區內容并關閉緩沖

(2) 示例:

<?php $cache_name = md5(__FILE__).'.html';//定義之后生成緩存文件的文件名$cache_lifetime = 3600;//定義過期時間為1小時//限制條件,條件符合,就加載緩存文件 if(filemtime(__FILE__) <= filemtime($cache_name) && file_exists($cache_name) && filectime($cache_name) + $cache_lifetime > time()) {include $cache_name;//如果在緩存之后沒有進行過修改,并且文件存在,并且沒有過期,我們就加載文件,并且下面內容不再訪問var_dump(filemtime());//測試時用的,看修改文件時,是否還能夠讀取緩存文件exit; }ob_start(); //開啟緩存?>=========這部分是我們要緩存的內容========<?php$content = ob_get_contents(); //獲取緩存區的內容ob_end_flush();//關閉緩存區$handle = fopen($cache_name,'w');//將文件以寫的方式打開fwrite($handle,$content);//將我們獲取到的緩存內容$content寫入我們定義好的緩存文件fclose($handle); //關閉打開的文件資源?>

?

現在訪問瀏覽器

與此同時,還生成了一個緩存文件,內容和從php文件中獲取到的是一樣的

現在,我們沒有修改文件,再刷新瀏覽器,會出現我們在if語句中輸出的filemtime,這證明if滿足,已經在讀取緩存文件了

現在,我們再修改一下文件,在文字后面加了一個+,如果瀏覽器顯示這個+,并且不輸出文件的修改時間,就證明讀取的不是緩存文件

瀏覽器顯示:

瀏覽器顯示結果帶 + , 證明文件修改之后,就重新讀取文件,然后再刷新

結果證明: 因為文件沒有再被修改,所以又讀取緩存文件了

?

?

代碼源碼下載:?http://download.csdn.net/download/m_nanle_xiaobudiu/10242029

總結

以上是生活随笔為你收集整理的动态语言静态化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。