2011-10-03 29 views
1

我正在使用twitter gem編寫我的第一個Rails應用程序。我只是簡單地檢索搜索結果,並試圖每隔5秒左右循環遍歷它們。如何在Rails應用程序中動態更新變量

我的想法是創建一個變量,並讓這個變量表示數組索引,並簡單地用Javascript動態更新這個變量(每5秒左右)。在客戶端實現此目標的最佳方式是什麼? AJAX? JavaScript的?

這是否有意義?如果有幫助,我將很樂意提供更多的上下文。謝謝。

+1

每5秒增加一次ruby var的目標是什麼?聽起來像很多服務器調用,除非有主要原因。 – Kelly

回答

0

在我的特殊情況下,我使用ruby的.to_json方法來轉換數據,然後用JavaScript處理它。這給了我很好的無縫循環數據的靈活性。至少它似乎適用於我的特殊情況。謝謝你們的幫助!

1

Ruby在服務器上運行,而JavaScript(通常)在客戶端上運行。

Ruby生成一個HTML文檔(可能帶有嵌入的JS)並且服務器將它傳遞給客戶端。

在那個階段Ruby已經完成執行。對Ruby做進一步處理的唯一方法是向服務器發出一個新的HTTP請求。這可以通過鏈接,提交表單,設置location.href,使用XMLHttpRequest或許多其他技術來完成。

這將導致Ruby程序再次執行(或執行不同的程序),它將對輸入數據執行任何操作。

您不能在客戶端簡單地在服務器上「設置變量」。

+0

謝謝@Quentin。理解。我更新了我的帖子內容(希望),以提供我想要完成的更清晰的內容。我肯定希望更新客戶端的變量而不發送任何附加的HTTP請求。 – pruett

2

很難說出你認爲你在問什麼:在JavaScript執行的時候服務器不再涉及。

如果您想更新服務器端的某種計數並以有意義的方式保存它,您可以通過Ajax來實現。

你究竟想要做什麼?

+0

感謝戴夫......我想阿賈克斯可能是要走的路,我現在就來看看。我使用'twitter' gem來獲取匹配搜索查詢的推文,然後更新數組索引以循環遍歷每個單獨的每5秒左右。是ajax的路要走嗎? – pruett

+0

仍然不知道你在做什麼,所以不可能說。 –

+0

我更新了帖子內容......這是否更有意義? – pruett

3

您試圖構建某種「近期推文」選取框的聲音。在不瞭解自己的需求的情況下,您可以嘗試簡單地在Rails中加載十條最新的推文,將它們放入十個隱藏的div中,然後使用jQuery來循環訪問頁面上的不同推文。

如果需要「更新」最新的推文而不需要用戶刷新頁面,那麼是的,你可能需要一個AJAX調用。

+0

謝謝艾略特。我可能會嘗試這種方法。我甚至沒有想過這種技術。 – pruett

+0

有沒有辦法在www.twistori.com上完成這些操作? – pruett

相關問題