回答
發生這種情況時,不會向服務器發送任何消息。當用戶按下停止按鈕時,瀏覽器會暫停頁面的呈現並忽略來自服務器的任何進一步響應。
如果請求已經發送到服務器,服務器通常會繼續執行它。但是,根據服務器的實現情況,可能會檢測到丟棄的連接。這意味着你不能依賴於它會在每種情況下都會繼續的事實。
但是,服務器可以檢測到丟失的連接。在連接斷開之後服務器是否會繼續執行取決於服務器的實現,並且不能依賴於它將在每種情況下都會繼續的事實。 – Rithiur 2010-03-30 09:50:39
@Rithiur,我同意你的看法,這是你的一個很好的評論。 – 2010-03-30 09:55:58
我已將註釋併入答案 – 2010-03-30 10:10:28
HTTP中沒有定義「STOP」消息/請求,因爲HTTP是無狀態的,停止請求會要求您知道其ID。很自然地,只要HTTP請求遇到服務器,就不能從外部世界停止。
服務器仍然會處理請求。如果您使用Visual Studio,則可以附加到IIS工作進程以查看情況。調試>附加到處理
實際上,它通過關閉連接發送「停止消息」。只有當它仍然在等待主請求的輸出時(不是在完成下載內容並開始加載圖像和東西時)纔是真實的。因此,您可以檢測用戶是否按下停止按鈕,或者當您收到連接關閉消息時,連接出現問題。
這裏是PHP的用戶手冊,一些信息:http://php.net/manual/en/features.connection-handling.php
在一個側面說明 - 它總是依賴於瀏覽器的實現,並沒有一定的辦法,以確保當用戶按下停止按鈕或連接只下降。
這確實是一個非常重要且經常被遺忘的細節。雖然沒有明確的「停止」命令,但可以檢測到丟失的連接。例如,這會默認中止正在運行的PHP腳本。這不會在用戶按下停止時立即發生,因此即使按停止按鈕(因爲用戶可能只是在服務器的輸出緩衝區而不是腳本本身),腳本仍可能會執行完畢。 直接從粘貼的url中:「但是,默認行爲是當您的腳本在遠程客戶端斷開連接時被中止。」 – Rithiur 2010-03-30 09:44:35
@Rithiur,@bisko和@Anton Gogolev--是安東的回答與你的矛盾嗎?如果HTTP是無狀態的並且沒有ID,那麼「停止消息類型」是如何發送的?請給一些更多的解釋傢伙。謝謝 – 2011-05-18 20:26:39
- 1. 當我按瀏覽器BACK按鈕時會發生什麼?
- 2. 當瀏覽器停止按鈕或ESC按下時停止JS
- 3. 當用戶點擊瀏覽器中的後退按鈕時會發生什麼?
- 4. 用戶在瀏覽器上點擊返回按鈕會發生什麼?
- 5. 當用戶按下主頁按鈕時停止聲音
- 6. 當你在瀏覽器中輸入URL時會發生什麼
- 7. 當用戶點擊瀏覽器停止按鈕時,如何停止服務器端處理(ASP.net C#)
- 8. c#Web瀏覽器模擬按鈕按
- 9. IE瀏覽器,按下按鈕時textarea的值不會改變
- 10. 當按下瀏覽器的刷新按鈕時防止重新插入數據
- 11. 當用戶在瀏覽器中按下後退/前進按鈕時是否保持會話?
- 12. 當你同時觸摸兩個按鈕時會發生什麼
- 13. 我想停止瀏覽器請求,當用戶點擊UI上的任何按鈕,如瀏覽器上的停止按鈕
- 14. 在web瀏覽器中按下按鈕時的新鏈接標籤c#
- 15. 當我點擊瀏覽器時,ViewState會發生什麼?
- 16. 當瀏覽器關閉時,applet會發生什麼?
- 17. 當按下按鈕時按鈕顏色發生變化
- 18. 按下按鈕時停止聲音iOS
- 19. 當按鈕按下兩次時,應用程序停止android
- 20. 每當我按下後退按鈕時,應用程序停止
- 21. 當按下後退按鈕時停止片段中的AsyncTask
- 22. 當用戶按主頁按鈕時停止Android服務
- 23. Rails 3:按下表單按鈕後會發生什麼?
- 24. 以前播放音樂不會在按鈕按下時停止。
- 25. 當瀏覽器返回按鈕時IE瀏覽器CSS問題
- 26. 鍵入google.com後按下輸入到網絡瀏覽器後會發生什麼
- 27. 當你停止VS調試器時會發生什麼?
- 28. 當用戶按下按鈕時,爲什麼按鈕看起來不同?
- 29. 當觸摸「Go」按鈕時UIWebView會發生什麼
- 30. 當用戶按下「Home」按鈕時,執行線程(主線程除外)會發生什麼情況
一隻小貓死在某個地方。 – 2010-03-30 09:43:13
@Sky Sanders很有幽默感...... – 2011-05-18 20:14:11