0

我有一个 html5 应用程序。它将内容发送到数据库。最初我是立即进行数据库更新,但是,现在我允许离线使用,而是让用户选择何时发送到数据库。(例如,如果他们在飞机上,他们可能想稍后再做。)

所以,现在的问题是,如果他们关闭,我想在他们关闭之前警告他们,如果他们未能发送任何未发送的数据,并允许他们在必要时返回发送它。在发送之前,我最终将使用本地存储,因此它不会丢失,但重要的是让用户知道它尚未发送。

我将有一个全局 g_bUnsentData = true; 如果有未发送的数据。

这可以在javascript中完成,你怎么做?

另外,顺便说一句,我如何测试在线状态,以便在用户离线并尝试发送数据时警告用户?

4

1 回答 1

1

请参阅@SmartK8 的评论。

尽管如此,如果您将函数绑定到beforeunload返回字符串的事件,大多数浏览器将显示该字符串并确认离开页面。例如:

Chrome/Mac 上的离开页面确认

某些浏览器可能根本不会在确认中显示您返回的字符串。其他浏览器,尤其是移动浏览器,甚至不会阻止页面被导航。

用于测试在线状态,navigator.onLine是一个布尔值,表示网络可用性。它并非随处可用(Opera、Firefox),但它是一个开始。有关更多详细信息,请参阅html5 Rocks 上的此页面

于 2012-11-24T12:08:30.320 回答