在用户离开或关闭页面之前保存HTML5视频currentTime

Save HTML5 video currentTime before user leaves or closes page

本文关键字:保存 HTML5 currentTime 视频 离开 用户      更新时间:2024-03-30

当用户离开网页时,我想将HTML5视频的currentTime的位置保存到数据库中。window.onbeforeunload似乎不是一种可靠的方法(更不用说它会提供一个不希望的弹出窗口!)。有更好的方法吗?

除了定期将职位保存到服务器之外,我想不出其他什么了。但就资源/带宽而言,这似乎是浪费。Netflix似乎很好地记住了你上次浏览的位置。他们如何能够可靠地实现这一目标?可能是低级服务器端C/C++代码?

有多种方法可以保存这样的东西:

本地(对于同一域)

加载前

这使您可以根据需要取消卸载事件。但是,弹出窗口是可选的。

卸载

此事件无法取消,但您仍然可以完全访问所有节点和JavaScript变量。因此,如果不想取消,您可以进行最后的清理/保存。您可以使用任何您喜欢的保存方法,例如document.cookiewindow.localStorage

window.onunload = function () {
    window.localstorage[myVideo.currentTime] = document.getElementById("myVid").currentTime;
}

如果你能处理这样一个事实,即当用户回到你的网站时,你只能处理cookie和localStorage。我认为这种方法是完美的。您只需保存当前时间,在用户下次访问时即可获得更新信息。

在后端

如果你真的需要将这些信息保存到你的后端,你可以尝试其他一些方法。

DB轮询

根据您的准确性需要,您可以每10-20秒发送一次ajax请求来更新播放时间。如果只包含视频id和当前时间,则请求太小,不会对性能产生影响。但是,请记住,如果你有很多域cookie,它可能会极大地增加请求的大小,并且你的500字节有效负载可能带有5kB的标头。