場景:我正在創建一個事件註冊模塊,其中用戶將從預訂日曆中選擇一個日期,填寫一些輸入字段並支付預訂日期。 其中一個要求是,每個日期只能有一個預訂。 這是兩個人想要在同一時間預訂同一日期的情況。因此,我們需要向稍後預訂的用戶預訂預訂日期爲的消息。請稍後再回來。發送一個Ajax呼叫之前加載/卸載
爲了達到這個目的,我在用戶選擇日期時在數據庫中創建一個臨時條目。針對該條目,我可以將消息顯示給後來的其他用戶。
邏輯上,該條目具有如果第一用戶將被刪除:
- 選擇一些其它的日期。
- 關閉瀏覽器或從頁面導航離開
所以,這將是供誰想要預訂同一日期,第二用戶。
問題:我可以在用戶更改所選日期後刪除條目。我無法實現第二個。我寫了一個函數,它將刪除該行並在未加載jQuery事件前調用該函數。顯然,該功能不適用於jQuery。
window.onbeforeunload = function(){
deleteTempEntry(); //This sends an ajax call to delete the entry. Not working.
alert("The second alert"); // even this alert doesn't work.
// I actually intend to use confirm box to make sure to not to delete the entry if the user does not leave the page.
confirm("Your current progress will be removed. Are you sure?");
//Calling this return function shows the warning message but none of the other code works.
//return 'Are you sure you want to leave?';
};
我試過了,綁定/上/純JS,但沒有一個似乎工作。
如解釋here,由於安全原因,我無法用onbeforeunload/unload事件做很多事情。 任何解決方法?
謝謝。
怎麼樣打開一個新窗口?然後在那裏顯示消息,並且彈出窗口上的卸載應該觸發'deleteTempEntry()' –
因此,當用戶關閉標籤頁/瀏覽器時,前端沒有太多可以做的事情。所以你將不得不在後端維護一個超時功能,以便刪除不完整的註冊。 – MegaMind