自动刷新<部门>不重新加载整个页面

我试图在不刷新整个索引页面的情况下更新“mydiv”的内容。
@mydata由mycontroller提供。我需要每隔n秒重新计算一次,并将其传递给“mydiv”

有了“链接到”就行了

index.html.erb

<%=
链接到('refresh','/mycontroller/index',:remote=>true)
%&燃气轮机;
<div id=“mydiv”>
<%=
@我的数据
%&燃气轮机;
&lt/部门>

index.js.erb

$('#mydiv').html('<%=escape_javascript(@mydata)%>'))

现在我需要每隔n秒自动刷新“mydiv”的内容(因此无需点击链接)。我尝试了以下解决方案:

  • 第一环节
  • 第二环节

但是没有运气

在我的application.js中,我写了以下内容:

函数执行函数(){
$.ajax({
//url:“/index”,
成功:功能(数据){
$('#mydiv').html(数据)
}
});
setTimeout(executeQuery,500);
}
$(文档).ready(函数(){
setTimeout(executeQuery,500);
});

对于面临我同样问题的人,我通过替换解决了这个问题

$('#mydiv').html(数据)

$('#mydiv').load('/mycontroller/index#mydiv'))

使用setInterval()而不是使用setTimeout()

Ref:https://www.w3schools.com/jsref/met_win_setinterval.asp

函数执行函数(){
$.ajax({
键入:“GET”,
url:'example.com/url/',//在此处提供您的响应url。
成功:功能(数据){
$('#mydiv').html(数据);
}
});
}
setInterval(executeQuery(),(n*1000));//将“n”替换为所需的秒数。

此代码将每隔“n”秒运行一次executeQuery()方法。这样你的要求就完成了

发表评论