2011-01-12 18 views
0
  • 的Ubuntu 10.10
  • 的Apache 2.2.17
  • PHP 5.3.4
  • APC 3.1.6
  • 內存緩存 3.0。 5

代碼:爲什麼這個頁面「加載3次?」 (它是一個錯誤配置?)

<?php 
$cache = new Memcache(); 
$cache->connect('localhost', 11211); 

$num = 1; 

if (($a = $cache->get('key')) !== false) $num = $a; 
$num += 1; 
$cache->set('key', $num); 

echo $num; 

輸出(連續三次刷新,只是之後的Apache重新啓動):

2 

然後

5 

然後

8 

問:爲什麼?我期待2,3,4。第一頁看起來似乎檢出,但隨後的頁面加載總是比我實際添加的數字增加三倍。換句話說,如果我寫

$num += 10; 

然後數字出來114171。我究竟做錯了什麼?我錯誤配置了APC或Memcache?我相當肯定APC是問題所在,但如果我確切地知道問題是什麼,那我就不會問了!

更新:當發生這種情況時,apache access_log顯示每個頁面加載3個不同的請求。

+0

調試技巧 - 檢查http訪問日誌,或製作一些 – goat 2011-01-12 05:04:58

+0

apache error_log缺乏信息,PHP設置爲最高級別的調試輸出。 – 2011-01-12 05:19:34

回答

1

你用什麼方法來提出請求?我觀察到一些firefox插件(如firebug)有時會導致頁面由於某種原因被加載多次。可能值得嘗試使用其他瀏覽器,或者僅僅使用wget或curl來發出請求,並查看它是否仍然產生相同的結果。

相關問題