2016-11-04 106 views
0

我有一個web應用程序開發本地主機寫在PHP和JS,偶爾會卡住加載。 卡住加載我的意思是你仍然沒有看到任何東西在頁面上。 一旦卡住了,即使我在另一個標籤中打開它,它仍然卡住。只有當我關閉窗口並重新打開時,它纔會再次運行。PHP web應用程序卡住加載

因此,我懷疑它與會話有關,但我不知道會話會如何影響此操作。它是PHP會話處理代碼還是瀏覽器?

我主要使用Chrome(現在版本54)。該服務器是在Windows 10上運行的XAMPP 5.6.3版。該應用程序連接到SQL Server 2012,但我不認爲這在這種情況下是相關的。

附加信息:

如果我等待足夠長的時間,最終的腳本將超時並顯示:

Fatal error: Maximum execution time of 90 seconds exceeded in project_functions.php on line 22

function startSession(){ 
    if (session_status() == PHP_SESSION_NONE) { 
     session_start(); 
    } // this is line 22 
} 

A面的問題:爲什麼會停留在第22行,其中只是一個右大括號?

+0

通話早期也許你能告訴我們你的代碼了。 –

回答

3

session_start的默認實現將鎖定會話以防止競爭條件。這意味着,如果您在長時間運行的腳本中打開會話,並且您沒有使用session_write_close關閉會話,則嘗試打開該會話的下一個請求將一直等到鎖定釋放。

最簡單的辦法:關閉會話一起session_write_close()

+0

到目前爲止,這似乎解決了它,謝謝 –