2011-04-16 34 views
1

我有一個應用程序,其中的項目可以由多個用戶進行編輯。當有人編輯一個項目時,其他人必須重新加載頁面才能看到更改。如何知道某人編輯某件物品時是否可以爲其他人刷新該物品。如何在其他用戶編輯它時重新加載網頁?

所以說,鮑勃是在佛羅里達州和網站編輯的項目。直到她重新加載頁面之前,西雅圖的Jill纔看到變化。當鮑勃編輯它時,我該如何刷新吉爾的物品?

我使用的軌道,jQuery的,在Heroku的PostgreSQL。

編輯:如果一個頁面有200個項目,我寧願不經常檢查,看看他們每個人都有改變。

回答

1

你必須要麼請求,服務器將定期與$就來檢查,如果該項目在頁面加載後修改,或使用comet

+0

我希望有一個簡單的方法做做什麼彗星。如果一個頁面有200個項目,我不想經常檢查它們是否每個都改變了。 – Dan 2011-04-16 18:45:53

+0

您發送到服務器頁面加載時間 - 並且服務器發回更改的對象。 – glebtv 2011-04-16 20:06:47

0

你說的是知道什麼爲具有從服務器,而無需重新加載頁面發送和接收數據包的能力的Ajax(異步JavaScript)。幸運的是,對於AJAX,Rails具有內置的功能。我發現this是一個非常好的教程。此外,目前我還找不到它,但是有一個非常好的屏幕截圖,展示瞭如何在rails上使用ruby創建博客,並且還涵蓋了AJAX。

0

可以使腳本返回「1」時,網頁已更改,「 0「的時候沒有。然後,你做這樣的事情用jQuery:

setInterval(function() { 
    $.ajax({ 
     'url': 'url_to_check', 
     'method': 'GET', 
     'data': { 
      'pageid': pageidhere 
     }, 
     'success':function(data) { 
      if (data == '1') { 
       location.reload(); 
      } 
     } 
    }); 
}, 5000); 

其中url_to_check是檢查是否有一定的pageid必須重新加載腳本的URL。 5000個代表「再次檢查每5秒」

相關問題