jquery - 如何存储请求 "offline"以便稍后执行?

标签 jquery http jsf primefaces

我正在使用 jsf 和 primefaces 构建一个网络应用程序。

这是一个非常简单的考勤应用程序,基本上员工在开始工作时单击一个按钮,在当天下类时单击另一个按钮。点击操作的时间戳被发送到服务器,在那里它们被处理并存储在数据库中。

问题是,当应用程序无法访问时(例如网络问题),请求(显然)无法发送到服务器。当发生这种情况时,我想存储用户单击按钮的时间(可能在 javascript 变量或 cookie 中),然后在网络恢复后自动将其发送到服务器。

我已经对它做了一个快速的研究,但我没有找到太多。 Html 5 有一个“离线模式”,但我不能依赖它,因为我使用的是一些旧版浏览器 (IE)。

最佳答案

如果您可以使用 HTML5 并且它对您来说足够了,您可以使用 window.localStorage。它受到现代浏览器和 IE8+ 的支持。然后您可以在用户再次连接互联网时检查此存储。

您可以使用 Firefox/Chrome 开发者工具进行实验。

setter/getter / setter/getter

window.localStorage.setItem('key','value');
window.localStorage.getItem('key');

而且你可以检查浏览器是否不支持HTML5 网络存储,你可以使用cookies。

关于jquery - 如何存储请求 "offline"以便稍后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894706/

相关文章:

http - 如何保护跨多个服务器的 POST 请求以使其暂时幂等?

JSF 命令按钮 - 样式

java - JSF 的奇怪问题 - Web bean 在第二次提交单击之前不会被调用

javascript - 多次运行 jQuery 的函数

jquery - 在更改选择框时更改 BootStrap Datepicker 的 startDate 和 endDate 参数

javascript - 他们是如何在 Bluestack 网站上创造出这种效果的

javascript - 如何在div中添加或插入数据之前?

google-app-engine - Go 中的 AppEngine 不从 urlfetch.Head 返回内容长度

android - Flutter HTTP 服务器 - 在另一个应用程序中提供 Flutter Web 服务

java - jsf primefaces,更新时显示 itemLabel 而不是 itemvalue