php瀏覽器緩衝解決高並發
我在頁面頭部這樣寫了一個緩衝,
$cache_time = 60*10; //十分鐘緩衝
$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE'];
if( strtotime($modified_time)+$cache_time > time() ){
header("HTTP/1.1 304");
exit;
}
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT");
echo "
";
echo date('Y-m-d H:i:s',time());
?>
問題一:
瀏覽器在這十分鐘之內只會從瀏覽器去取資料;
問題二:
如果資料庫的資料更新,動態網頁面就不是動態網頁面的,讀的還是瀏覽器的。怎樣可以做到頁面更新,緩衝重新開始計算呢?有什麼辦法可以頁面變動緩衝重新開始?
線上求告訴回答!
大家一般都是怎麼解決高並發的問題的呢?
------解決方案--------------------
php只能做一些資料緩衝,解決高並發需要從伺服器入手,比如你的Apache,Ngix緩衝可以參考smarty
------解決方案--------------------
調用緩衝是在,資料沒有更新的時候,去調用緩衝,在調用緩衝的時候應該去判斷 資料是否更新 如果存在更新 你再去重新請求資料
------解決方案--------------------
你這種緩存重新整理就會更新。
------解決方案--------------------
每次訪問頁面,瀏覽器都會像服務端發起請求,你看到的304,200等是服務端告訴瀏覽器的,而不是瀏覽器自己判定的。對於動態網頁面,即使你設了緩衝時間,如果資料變動,預設還是會返回最新的資料,而不是瀏覽器緩衝的資料。
------解決方案--------------------
做緩衝的話不一定要這麼做,可以用memcache,比你這麼弄好... 個人想法