Javascript 如何在Rails应用程序中动态更新变量

Javascript 如何在Rails应用程序中动态更新变量,javascript,ruby-on-rails,Javascript,Ruby On Rails,我正在使用twittergem编写我的第一个Rails应用程序。我只是检索搜索结果,并尝试每5秒钟左右逐一浏览一次 我的想法是创建一个变量,让这个变量表示数组索引,然后简单地用Javascript动态更新这个变量(大约每5秒一次)。在客户端实现这一点的最佳方法是什么?AJAXJavascript 这有意义吗?如果有帮助的话,我很乐意提供更多的上下文。谢谢。Ruby在服务器上运行,JavaScript(通常)在客户端运行 Ruby生成一个HTML文档(可能带有嵌入式JS),服务器将其交付给客户端

我正在使用
twitter
gem编写我的第一个Rails应用程序。我只是检索搜索结果,并尝试每5秒钟左右逐一浏览一次

我的想法是创建一个变量,让这个变量表示数组索引,然后简单地用Javascript动态更新这个变量(大约每5秒一次)。在客户端实现这一点的最佳方法是什么?AJAXJavascript


这有意义吗?如果有帮助的话,我很乐意提供更多的上下文。谢谢。

Ruby在服务器上运行,JavaScript(通常)在客户端运行

Ruby生成一个HTML文档(可能带有嵌入式JS),服务器将其交付给客户端

在这个阶段,Ruby已经完成了执行。使用Ruby进行进一步操作的唯一方法是向服务器发出新的HTTP请求。这可以通过以下方式实现:使用XMLHttpRequest或其他多种技术,通过链接、提交表单、设置
location.href

这将导致Ruby程序再次执行(或执行另一个不同的程序),这将对输入数据执行任何操作


您不能简单地从客户端在服务器上“设置变量”。

Ruby在服务器上运行,而JavaScript(通常)在客户端上运行

Ruby生成一个HTML文档(可能带有嵌入式JS),服务器将其交付给客户端

在这个阶段,Ruby已经完成了执行。使用Ruby进行进一步操作的唯一方法是向服务器发出新的HTTP请求。这可以通过以下方式实现:使用XMLHttpRequest或其他多种技术,通过链接、提交表单、设置
location.href

这将导致Ruby程序再次执行(或执行另一个不同的程序),这将对输入数据执行任何操作


您不能简单地从客户端在服务器上“设置变量”。

很难说出您认为自己在问什么:当您的JavaScript执行时,服务器已不再参与

如果您想在服务器端更新某种计数,并以有意义的方式将其持久化,那么可以通过Ajax来实现


但是,您实际上想做什么?

很难说您想问什么:当您的JavaScript执行时,服务器已不再参与

如果您想在服务器端更新某种计数,并以有意义的方式将其持久化,那么可以通过Ajax来实现


不过,你到底想做什么?

听起来你想建立某种“最近的推特”字幕。在不了解您的需求的情况下,您可以尝试在Rails中加载十条最新的tweet,将它们放入十个隐藏的div中,然后使用jQuery循环浏览页面上的不同tweet


如果要求用户在不刷新页面的情况下“更新”最新的推文,那么是的,您可能需要一个AJAX调用。

听起来您正在尝试构建某种类型的“最近的推文”字幕。在不了解您的需求的情况下,您可以尝试在Rails中加载十条最新的tweet,将它们放入十个隐藏的div中,然后使用jQuery循环浏览页面上的不同tweet


如果用户需要在不刷新页面的情况下“更新”最新推文,那么是的,您可能需要一个AJAX调用。

在我的特殊情况下,我使用ruby的
.to_json
方法来转换数据,然后用javascript对其进行操作。这使我能够灵活地无缝地循环数据。至少在我的特殊情况下它似乎起了作用。谢谢你们的帮助

在我的特殊情况下,我使用ruby的
.to_json
方法转换数据,然后使用javascript对其进行操作。这使我能够灵活地无缝地循环数据。至少在我的特殊情况下它似乎起了作用。谢谢你们的帮助

每5秒增加ruby变量的目标是什么?这听起来像是很多服务器调用,除非有主要原因。每5秒增加ruby变量的目标是什么?这听起来像是很多服务器调用,除非有主要原因。谢谢dave…我认为ajax可能是一种方式,我现在就来研究一下。我正在使用
twitter
gem获取与搜索查询匹配的tweet,然后更新一个数组索引,每5秒左右循环一次。ajax是一条路吗?我仍然不知道你到底在做什么,所以很难说。不是真的。要更新的变量的用途是什么?如果你只是尝试每五秒钟检索一次tweet,请使用一个简单的JavaScript计时器。gem的工作方式(以我有限的理解)是它返回一个最多100个结果的数组。我相信有更好的方法,但我想我应该通过更新变量0到99来表示数组的索引来循环这个数组,为什么要循环这个数组?如果您只是想在请求后显示它们,只需在模板中循环使用它们(这也适用于返回呈现HTML的ajax更新)。谢谢dave…我认为ajax可能是一种方式,我现在将研究它。我正在使用
twitter
gem获取与搜索查询匹配的tweet,然后更新一个数组索引,每5秒左右循环一次。ajax是一条路吗?我仍然不知道你到底在做什么,所以很难说。不是真的。要更新的变量的用途是什么?如果你只是尝试每五秒钟检索一次tweet,请使用一个简单的JavaScript计时器。gem的工作方式(以我有限的理解)是它返回一个最多100个结果的数组。我确信有更好的方法,但我想我应该通过更新a变量来循环这个数组