2012年1月2日 星期一

PHP session lock

使用session時,若先前的頁面尚未執行完畢,預設session會被鎖住。
此時,若執行另外一個也有使用session的頁面,
則須等前一個頁面執行完畢,才能再執行。

要避免等前一個頁面執行完畢,才能執行下一個頁面的情況,
可以使用 session_write_close() ,告之不會再對session做寫入的動作,
這樣其他頁面就不會等此頁面執行完才能再執行。

範例:沒使用 session_write_close()
a.php程式碼如下
//a.php
session_start();
sleep(15);
echo "end";
b.php程式碼如下
//b.php
session_start();
echo "end";

執行結果如下,左圖(a.php)尚未執行完畢,則右圖(b.php)須等a.php執行完才能執行。



範例:使用 session_write_close()
a.php程式碼如下
//a.php
session_start();
session_write_close();//加上session_write_close
sleep(15);
echo "end";
b.php程式碼如下
//b.php
session_start();
echo "end";

執行結果如下,左圖(a.php)尚未執行完畢,右圖(b.php)不須等a.php執行完亦可執行。



其他:

沒有留言:

張貼留言