一、ob_start()php
開啓文件緩存html
二、ob_get_contents()ajax
獲得緩存中的內存thinkphp
三、ob_get_length()json
獲得緩衝區的長度緩存
四、ob_flush()php框架
輸出緩衝區的內容,若是你想獲取緩衝區的內容要在這個函數以前使用ob_get_contents(),否則數據將會被清空框架
五、ob_end_flush()ide
輸出緩衝區並關閉緩存函數
六、ob_end_clean()
清除緩存並關閉輸出緩衝,若是這個再ob_start()開啓以後不執行這個函數時候,那麼將一直寫入緩衝區
下面咱們來寫一個頁面靜態化示例來練練手,本案例是依託thinkphp框架進行講解,其餘框架小夥伴們自行腦補!
一、首先有四個函數
ob_start() 開啓緩存
ob_get_contents() 獲取緩衝區的內容
ob_clean() 刪除緩衝區的內容
ob_get_clean() 先獲取而後再刪除緩衝區內容
二、而後咱們定義一個函數來生成靜態文件
/**定義一個緩存文件 * @author crazy * @time 2018-03-14 */ public function createCache(){ $action = ACTION_NAME; $c_name = CONTROLLER_NAME; $dir = './Cache/'.$c_name.'/'.$action.'/'; if(is_dir($dir)){ file_put_contents("$dir$action".'.shtml',ob_get_contents()); }else{ if(mkdir($dir,0777,true)){ file_put_contents("$dir$action".'.shtml',ob_get_contents()); } } }
三、根據文件目錄是否存在而後咱們作相應的重定向
$action = ACTION_NAME; $c_name = CONTROLLER_NAME; $dir = './Cache/'.$c_name.'/'.$action.'/'.$action.'.shtml'; if(file_exists($dir)){ header("Location:http://localhost/simengphp/$dir"); }
四、局部靜態化
$.ajax({ url:'', type:'get', dataType:'json', error: function () { }, success:function(data){ $.each(data.result,function(key,val){ }) } });
咱們在咱們的模板裏面寫上這個ajax獲取頁面內容的方法,而後咱們調用這個頁面的時候這個方法就會自動的建立了