2017-05-06 96 views
3

我在使用PHP代碼中的多線程POST請求。由於這些請求可能需要很長時間,因此我決定對這些POST請求進行多線程處理,以便通過使用多個連接更快速地完成任務。jQuery POST多線程延遲

在這一刻,我寫了JavaScript調度程序,執行POST請求(使用jQuery post命令)request_helper.php,並觀察當時是否有多達4個未決請求。理論上,我可以以4倍的速度獲得數據。

我開始request_helper.php播放與內容:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 'on'); 
sleep(20); 
exit (0); 
?> 

,並運行在同一時間4個POST請求。 和20秒後,我有4個POST迴應。大!

但是如果我添加start_session() - 我需要用於檢查用戶是否有權限:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 'on'); 
// always load or start session 
session_start(); 
sleep(20); 
exit (0); 
?> 

爲第一請求的響應需要20秒,但對於第二 - 40秒,第三3秒 - 它看起來像session_start可以在當時處理一個請求。我實際上失去了多線程。

爲什麼會發生這種情況,如何做得更好?

回答

1

您可以以這種方式使用會話,但在發送下一個請求之前需要解鎖會話。

session_write_close();

應該這樣做。