2013-06-12 19 views
4

防爆刷新元素:網站說明:當他們登錄到管理方如何在CakePHP


  1. 兩個超級管理員SA1 SA2
  2. 更新按鈕將apear儀表板上。

所需


當更新按鈕SA1點擊將需要15分鐘才能完成的任務, 考慮而進行的過程中,他& SA2日誌應來要知道SA1 已經點擊更新按鈕,直到除非它玩完,SA2不能點擊 就可以了。


我做什麼


創建表 'button_status'[ID,狀態( '完整的', '不完全'),每當在更新按鈕 SA1或SA2點擊我正在插入 狀態爲「不完整」值的新記錄,直到我正在顯示正在處理進程 加載圖像並禁用SA1 & SA2的更新按鈕,一旦進程 在10個版本之後獲得完成我更新最後一條記錄的狀態爲「完成」。 和刪除加載圖像,並使更新按鈕啓用。
一切都很好工作,問題是加載圖像或禁用按鈕等 管理員誰不上的更新按鈕點擊,我不能夠刪除它作爲我需要 刷新頁面。 有沒有什麼方法可以在其他管理員自動顯示完成而無需在db完成狀態更新後刷新頁面?

回答

1

有得到它直的三種方式。

AJAX彗星

這涉及其中客戶端響應服務器上的事件客戶端 - 服務器實現。更多關於AJAX Comet。我使用的解決方案之一是meteor server。這是相對很容易設置,但你需要訪問服務器來配置它的方式。但它已經停止。

優點

  • 你更新頁面時,纔會有改變。從而起飛您的服務器的負載。
  • 很少或沒有延遲

缺點

  • 配置服務器 - 客戶端
  • 耗時實施

定時輪詢的

您可以查詢ÿ我們的服務器在一段時間內進行更改。您要求自定義腳本以JSON或XML返回鎖定的記錄。基於你更新JavaScript的按鈕狀態。更深層次的是討論Reload AJAX data every X minutes/seconds, jQuery

優點

  • 方便快捷的實現

缺點

  • 增加額外的負載在服務器上
  • 還是有一定的潛伏期

將它保持不變

如果是管理界面和挫折的點擊已經鎖定記錄不是什麼大不了的,我會離開它,因爲它是。

一個更

我發現實時數據應用http://meteor.com/,他們SO tag有趣的解決方案,但目前他們只有MongoDB的支持。

+0

@破冰船。我做了同樣的事情wat你說'保持它原樣',但我希望有這個簡單的解決方案..! –

+0

@SiddeshBhalke目前我不知道簡單的跨瀏覽器解決方案。 – icebreaker

+0

upvoted你的答案,但這只是建議,我做的和你說的一樣。但每個薄荷糖發送一個Ajax請求增加服務器上的負載很多..!可能不是一個壞的解決方案。 –