我的应用程序假设在没有任何用户交互的情况下不断更新页面。标准是页面必须在那里,作为监视器上的额外窗口,以便用户可以看到信息实时更新。
我在使用Rails的jQuery中使用Ajax,我的问题是--.bb页面将保持Ajax打开多长时间?我是否需要刷新页面或重新初始化?或者这根本不会成为问题?
答案 0 :(得分:0)
Ajax意味着异步Javascript和XML。它的作用是将请求发送到服务器并以异步方式处理它的答案;无需刷新页面。
对HTTP服务器的请求不是保持打开的(除非您将其配置为保持连接打开,通常情况并非如此)。 HTTP协议是无状态的,这意味着您对服务器发出的每个请求都将被视为与之前的请求完全没有连接。实际上,要维护请求之间的状态,您必须在Web应用程序级别管理它,在这种情况下是rails,将浏览器会话的标识符发送到服务器(通常是本地存储在客户端Web浏览器cookie上的会话ID)可以由rails应用程序处理,以识别打开的会话。
因此,除非您的前端与具有持久连接的HTTP服务器交互,否则您的服务器将无法保持与Web浏览器建立的连接打开。它会发送响应并关闭连接。
AJAX允许向服务器发出请求,并在不重新加载页面的情况下处理响应。 http服务器将打开连接,直到它响应您的Web浏览器请求,之后连接关闭,因此不会保持连续性。
要维护更新erb视图的数据,您必须使用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
}
})
});