我試圖在用戶關閉瀏覽器時發出放置請求來保存一些東西。 我使用的角度,我試過使用onbeforeunload和onunload事件,但沒有得到它以我想要的方式工作。我有一個資源我想更新。當用戶關閉瀏覽器時,把http放入
$window.onbeforeunload = function(){
myResource.foo = closingBrowser();
myResource.$update();}
隨着小提琴手的運行,我看到這不會做一個請求。不是當我使用$window.onunload
。但是,如果我輸入返回語句onbeforeunload
彈出確認框,並且當我單擊確定時,提琴手顯示放入請求已完成。現在我不想要這個彈出窗口,我只想在用戶關閉瀏覽器時放棄。
有沒有辦法讓我用這些方法做到這一點,或者我必須以其他方式解決它(建議非常感謝)?
更新:
我做了一些更多的測試,並發現了一些不一致的行爲。在Internet Explorer(11)中:如果我有返回語句,則有經典彈出窗口。但是,如果我按取消並返回頁面,它只會發送PUT。如果我按OK離開,PUT不會發出。
鉻:無論我按取消返回,還是確定離開,仍然發送PUT。另一個'黑客'(?)在chrome中工作,但不是,即沒有返回時(沒有彈出,這是想要的行爲),是在$update()
之後有一個循環,如:while(!myResource.$resolved){}
(或者只是一個for-loop迭代幾百萬次也行得通,但它看起來很醜,)chrome實際上發送了PUT(IE沒有)。
你認爲這會在IE中複製嗎?
我沒有對firefox做過廣泛的測試,但是我做的很少,看起來更像chrome。
如果頁面將被關閉,瀏覽器將中止您的put查詢 –