我想在用戶脫機時顯示消息並禁用所有編輯功能,然後在用戶重新聯機時重新啓用它們。現在我正在使用navigator.onLine,它在某些情況下實際上並未很好地檢測連通性。檢測與Drive Realtime API的連接
確定Drive Realtime API是否連接的最佳方法是什麼?
我想在用戶脫機時顯示消息並禁用所有編輯功能,然後在用戶重新聯機時重新啓用它們。現在我正在使用navigator.onLine,它在某些情況下實際上並未很好地檢測連通性。檢測與Drive Realtime API的連接
確定Drive Realtime API是否連接的最佳方法是什麼?
我們在實時文檔上使用保存狀態更改事件成功確定連接的脫機/聯機狀態。這意味着在嘗試對文檔進行更改之前,您不會知道自己處於脫機狀態,但如果知道狀態非常重要,則可以添加心跳文檔更改。
對於格蘭特的答案,可能需要考慮的一個補充是,不能依賴「isSaving」來確定新的實時文檔或更新已完全保存到服務器。
要確保斷開連接或頁面關閉是安全的,還必須檢查document.saveDelay是否已降至零。
這不是目前由谷歌文檔,但可以通過上傳時,例如在看網絡流量,在內存中的模型進行驗證:
var saving = false;
var ev = gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED;
document.addEventListener(ev, function(e) {
saving = e.isSaving;
});
document.saveAs(fileId);
var h = window.setInterval(function() {
if (!saving && !document.saveDelay) {
window.clearInterval(h);
console.log("Good to go");
}
}, 1000);