gpt4 book ai didi

ruby-on-rails - Rails 可以让 Ajax 保持开放多长时间

转载 作者:行者123 更新时间:2023-12-01 05:54:28 26 4
gpt4 key购买 nike

我的应用程序应该不断更新页面,而无需任何用户交互。标准是该页面必须在那里,作为监视器上的额外窗口,以便用户可以看到实时更新的信息。

我在 jQuery 中使用 Ajax 和 Rails,我的问题是 - .erb 页面将保持 Ajax 打开多长时间?我是否需要刷新页面或重新初始化?或者这根本不会成为问题?

最佳答案

Ajax 意味着异步 Javascript 和 XML。它的作用是将请求发送到服务器并以异步方式处理它的答案;无需刷新页面。

对 HTTP 服务器的请求不会保持打开状态(除非您将其配置为保持连接打开,但通常情况并非如此)。HTTP 协议(protocol)是无状态的,这意味着您向服务器发出的每个请求都将被视为与之前的请求完全没有连接。事实上,为了维持请求之间的状态,您必须在 Web 应用程序级别(本例中为 Rails)进行管理,将浏览器 session 的标识符发送到服务器(通常是本地存储在客户端 Web 浏览器 cookie 上的 session ID)您的 Rails 应用程序可以对其进行处理,以识别打开的 session 。

因此,除非您的前端通过持久连接与 HTTP 服务器交互,否则您的服务器不会保持与 Web 浏览器打开建立的连接。它将发送响应并关闭连接。

AJAX 允许向服务器发出请求,并处理其响应,而无需重新加载页面。 http 服务器将打开连接,直到它响应您的网络浏览器请求,之后连接将关闭,因此不会保持连续性。

为了保持 erb View 上数据的更新,您必须使用 jQuery 进行管理,每 x 时间发送请求。下面是一个每 1 秒发出一次 ajax 请求的示例。

setInterval( "fetchDataAndUpdateView();", 1000 ); 
fetchDataAndUpdateView = function(){
jQuery.ajax({
url: "your-url",
success: function(){
//do something here to update your html with the data you got from the server
}
})
});

关于ruby-on-rails - Rails 可以让 Ajax 保持开放多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com