2014-03-29 40 views
0

我想在用戶脫機時顯示消息並禁用所有編輯功能,然後在用戶重新聯機時重新啓用它們。現在我正在使用navigator.onLine,它在某些情況下實際上並未很好地檢測連通性。檢測與Drive Realtime API的連接

確定Drive Realtime API是否連接的最佳方法是什麼?

回答

1

對於格蘭特的答案,可能需要考慮的一個補充是,不能依賴「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);