我有一些代碼在用戶離開文本框時異步調用服務器上的保存方法。但是,用戶可能會在不離開的情況下花費很長時間在單個文本框中,並且如果他們的會話超時,那麼當他們嘗試保存時,他們會輸入任何他們輸入的內容。所以我也想定期保存(也許一分鐘左右)。如何實現自動保存
我在想我可以添加一個onfocus事件,每分鐘保存一次該字段,但隨後我可以使用onblur在他們離開時刪除事件。
備註:每次自動保存時,都會重新啓動會話超時。爲了防止他們的會話無限期地繼續下去,我也將檢查自他們上次按下按鍵以來已經過了多長時間,並且如果已超過一分鐘(或者保存間隔時間),它將不會保存。
一方面,這開始顯得過於複雜,所以我不得不問:有沒有更簡單,更直接的方法來實現這一點?如果沒有,那麼我是否應該非常關心onblur事件沒有被調用並且不能斷開自動保存事件的情況?
我認爲你使它更復雜,比它需要通過綁定與自動保存功能相結合。我認爲如果將這兩個概念分開,這可能會變得更簡單。 –
注意,如果會話不夠長讓用戶輸入他們需要的內容,會議有什麼意義?例如,我有時喜歡打開一個標籤並寫幾十行,然後吃晚飯和洗個澡,兩小時後回來完成我的文本。但是,對於你的問題,而不是添加和刪除事件處理程序,而是存儲上次保存的所有內容。如果沒有改變,不要保存。 – Siguza
@Quantastical它適用於全球大型公司使用的績效管理應用程序。在去年評論季的繁忙部分,我們收到了大量關於人們「丟失」數據的投訴。 95%的時間是因爲他們的會話超時或他們失去聯繫。我們建議我們可以在離場時進行自動保存,但他們要求即使不離場也要定期保存。如果這取決於我,我會說他們只需要讓他們更頻繁地點擊保存按鈕。 :) – BVernon