如何在Cakephp中刷新元素

时间:2013-06-12 07:25:32

标签: jquery cakephp

例如:网站说明:


  1. 两个超级管理员SA1 SA2
  2. 当他们登录管理员端时,更新按钮将在仪表板上显示。

  3. 所需


    当SA1点击“更新”按钮时,完成任务需要15分钟,       在进行中的过程中考虑,& SA2登录后他应该了解SA1       已经点击了更新按钮,除非它完成,否则SA2无法点击       在它上面。


    我做了什么


    每当创建表'button_status'[id,status('complete','incomplete')]     SA1或SA2点击更新按钮我正在插入新记录     状态为'不完整'值,直到我显示正在进行的过程     加载图像并禁用SA1和SA的更新按钮。 SA2,一旦处理     10分钟后完成我将最后一条记录的状态更新为“完成”。     并删除加载图像并启用更新按钮     一切正常,问题是加载图像或禁用其他按钮     没有点击更新按钮的管理员,我无法删除它,因为我需要     刷新页面。     在db?

    中更新“完成”状态后,是否有任何方法可以在没有刷新页面的情况下自动显示其他管理员

1 个答案:

答案 0 :(得分:1)

有三种方法可以直截了当。

AJAX Comet

这涉及客户端 - 服务器实现,其中客户端响应服务器上的事件。有关AJAX Comet的更多信息。我使用的解决方案之一是meteor server。设置相对简单,但您需要访问服务器以您的方式配置它。它已经停止使用。

赞成

  • 只有在有变化时才更新页面。因此,取消服务器的负载。
  • 很少或没有延迟

缺点

  • 配置服务器客户端
  • 耗时的实施

定时轮询

您可以在一段时间内轮询服务器以进行更改。您要求自定义脚本以JSON或XML返回锁定的记录。基于此,您使用javascript更新按钮状态。更深入地讨论Reload AJAX data every X minutes/seconds, jQuery

赞成

  • 简单快速的实施

缺点

  • 在服务器上添加额外负载
  • 还有一些延迟

保持原样

如果这是管理界面,点击已锁定记录的挫折感并不大,我会保持原样。

再一次

我找到了有趣的实时数据应用解决方案http://meteor.com/,他们的SO tag,但目前他们只支持mongodb。