例如:站点说明:
需要
当 SA1 单击更新按钮时,完成任务需要 15 分钟,
考虑进程正在进行中,& SA2登录他应该知道SA1
已经点击更新按钮,除非它完成,否则SA2不能点击
在上面。
我做了什么
创建表 'button_status' [id, status('complete','incomplete')] 每当
SA1 或 SA2 单击更新按钮我正在插入新记录
状态为“不完整”值,直到我显示正在进行的过程
加载图像并禁用 SA1 和 SA2 的更新按钮,一旦处理
在 10 分钟后完成我正在将最后一条记录的状态更新为“完成”。
并删除加载图像并使更新按钮启用。
一切正常,问题是加载图像或禁用其他按钮
没有点击更新按钮的管理员,我无法删除它,因为我需要
刷新页面。
在 db 中更新“完成”状态后,是否有任何方法可以在不刷新页面的情况下为其他管理员自动显示已完成?
最佳答案
有三种方法可以直接解决。
AJAX cometd
这涉及客户端 - 服务器实现,其中客户端响应服务器上的事件。更多关于 AJAX Comet 。我使用的解决方案之一是 meteor server 。 相对 设置简单,但您需要访问服务器以您的方式配置它。不过已经停产了。
优点
缺点
定时轮询
您可以每隔一段时间轮询一次服务器以进行更改。您要求自定义脚本以 JSON 或 XML 格式返回锁定的记录。基于此,您可以使用 javascript 更新按钮状态。深入讨论 Reload AJAX data every X minutes/seconds, jQuery
优点
缺点
保持原样
如果这是管理界面,并且点击已锁定记录的挫败感没什么大不了的,我会保持原样。
再来一个
我发现实时数据应用程序 http://meteor.com/ 的有趣解决方案,他们的 SO tag ,但目前他们只有 mongodb 支持。
关于jquery - 如何在 Cakephp 中刷新元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17059876/