在執行兩個非常簡單的ajax POST請求(成功)時,Apache服務器似乎總是按照請求的順序響應,儘管第二個請求需要比第一個請求少得多的處理時間。雙核心PC上的Apache/2.2.6(Win32)和多線程
服務器處理Request1所用的時間爲30秒。 服務器處理Request2所用的時間爲10秒。
var deferred1 = dojo.xhrPost(xhrArgs1);
var deferred2 = dojo.xhrPost(xhrArgs2);
我希望Apache在我的雙核心機器上實現一些「並行化」,這顯然不會發生。
當我在一個單獨的瀏覽器中同時執行每個請求,然後工作正常,首先返回Request2。
事實:
- httpd.conf中已:ThreadsPerChild的50,50 MaxRequestsPerChild
- PHP版本:5.2.5
- ,這兩個客戶端請求在收到大約在同一時間Apache的訪問日誌的狀態,這是預期的。在服務器端
- PHP代碼是睡眠(30)/睡眠(10)
爲什麼我在同一個瀏覽器中運行時不會獲得「並行」知不知道這樣簡單的事情?
感謝
是的,我做的。也是Zend框架。 – 2011-03-20 12:06:29
對不起,我在你回答了:-(重新發布它,以便您的評論是不是斷章取義的確切同時刪除了我的意見:如果你使用的會議我問 – 2011-03-20 12:08:53
FWIW,只是想指出兩件事情,你可能不知道關於兩行JS的你貼。(1)'dojo.xhrPost'不是構造函數,所以你不應該使用'new'關鍵字之前。(2)這兩個請求將因爲XHR在默認情況下是異步的 – 2011-03-21 04:05:14