你應該這個姿式學習php(3)

一、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獲取頁面內容的方法,而後咱們調用這個頁面的時候這個方法就會自動的建立了

相關文章
相關標籤/搜索