2017-04-06 123 views
0

我們使用websocket發送用戶活動事件,如點擊,鼠標移動,滾動,輸入和...隨着它,我們也發送HTML DOM快照。 html快照的平均大小約爲300 kb。在某些情況下,html快照尚未到達我們的服務器。以下是幾種情況。Websocket防止數據框丟失

  1. 用戶只能停留幾秒鐘並關閉窗口。

  2. 而在緩慢網絡

我們試圖在beforeunload事件發送剩餘的事件也不能正常工作。

有沒有辦法解決這個問題?

+0

使用快速減壓程序減少您發送的數據量將有助於在所有情況下。有些東西[像我之前使用過的舊版本](http://danml.com/js/compression.js),它可以將HTML或JSON中的重複鍵名降低到原來的1/10尺寸。 – dandavis

+0

爲什麼你擔心用戶關閉頁面時會發生什麼?當他們關閉你的頁面時,遊戲結束了,這就是Web的工作方式。當用戶的瀏覽器代理指出他們要離開您的網站時,您不能將後臺處理任務排隊等候。在我看來,應該將其重寫成一個獨立的應用程序,在這個應用程序中明確告知用戶他們正在進入的內容。通過發送用戶事件和其他指紋信息(如DOM,可能會或可能不會增加用戶自己的腳本)和所有。 – amn

回答

0

如果用戶將再次訪問,您可以使用localStorage保存數據並在它們返回時重新發送。