簡體   English   中英

PHP頁面流程分離

[英]PHP page process separation

如果某個php頁面正在運行一些較長的進程,例如sleep或while循環,這需要一段時間才能加載,這會影響同一頁面上的其他進程嗎?
我注意到,當我嘗試以不同的短流程打開同一頁面時,它還需要花費很長時間才能加載,並且很明顯,在第一個(長流程)加載之前,它並沒有加載,

這是真的還是我的代碼有什么問題以及如何防止它?
我認為這與緩存有關,但是我不想在獲得提示或答案之前就搞砸了

PHP在單個過程中運行,每次您訪問該頁面時,它都會啟動該過程,該過程並完成操作。 每個過程都不​​會影響其他過程。

我注意到,當我嘗試以不同的短流程打開同一頁面時,它不會在第一個(長流程)開始之前加載

最常見的原因:

  • 您的腳本按原樣使用PHP會話,該會話使用文件鎖定。 文件鎖定機制確保一次只能編輯一個腳本,每個用戶的會話數據,但這確實意味着如果來自同一用戶的兩個請求同時發生,則第二個腳本將在第一個腳本完成之前不啟動在會話上(盡管兩個不同的用戶具有不同的會話文件,所以它們不會沖突)
  • 瀏覽器會自動檢測到頁面耗時較長,並有意在后台延遲后續請求-我認為這是Google Chrome的默認操作。

但是,這兩種情況都是相對安全的,因為只有在同一用戶嘗試同時加載多個頁面的情況下才會出現延遲,這種情況並不常見-不管實際頁面加載需要多長時間,不同的用戶都不會看到延遲。

這個出色的SO答案中有更多關於該主題的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM