如何在Rails应用程序中动态更新变量
我正在使用twitter
gem编写我的第一个Rails应用程序。 我只是检索搜索结果,并尝试每隔5秒左右单独循环一次。
我的想法是创建一个变量并让这个变量代表数组索引,并简单地用Javascript动态更新这个变量(每5秒钟左右)。 在客户端实现这一目标的最佳方法是什么? AJAX? JavaScript的?
这有意义吗? 如果有帮助,我将很乐意提供更多背景信息。 谢谢。
听起来你正试图建立某种“最近的推文”大帐篷。 在不了解您的要求的情况下,您可以尝试简单地在Rails中加载十条最新的推文,将它们放在十个隐藏的div中,然后使用jQuery循环浏览页面上的不同推文。
如果要求在没有用户刷新页面的情况下“更新”最新的推文,那么是的,您可能需要进行AJAX调用。
很难说出你认为你在问什么:当你的JavaScript执行时,服务器不再涉及。
如果要在服务器端更新某种计数并以有意义的方式保留它,可以通过Ajax执行此操作。
但是你真的想做什么呢?
Ruby在服务器上运行,而JavaScript(通常)在客户端上运行。
Ruby生成一个HTML文档(可能带有嵌入式JS),服务器将它传递给客户端。
在那个阶段,Ruby已经完成了执行。 使用Ruby进行任何进一步操作的唯一方法是向服务器发出新的HTTP请求。 这可以通过链接,提交表单,设置location.href
,使用XMLHttpRequest或许多其他技术来完成。
这将导致Ruby程序再次执行(或者执行不同的程序),这将对输入数据执行任何操作。
您不能简单地从客户端在服务器上“设置变量”。
在我的特定情况下,我使用ruby的.to_json
方法来转换数据,然后使用javascript对其进行操作。 这使我可以灵活地无缝地循环数据。 至少它似乎适用于我的特殊情况。 谢谢你的帮助!