dp.*_*rlo 10 ajax ruby-on-rails ruby-on-rails-3
我正在尝试更新"mydiv"的内容而不刷新整个索引页面.@mydata由mycontroller提供.我需要每n秒重新计算一次并将其传递给"mydiv"
使用"link_to"它有效!
index.html.erb
<%=
link_to('refresh', '/mycontroller/index', :remote => true)
%>
<div id="mydiv">
<%=
@mydata
%>
</div>
Run Code Online (Sandbox Code Playgroud)
index.js.erb的
$('#mydiv').html('<%= escape_javascript(@mydata) %>')
Run Code Online (Sandbox Code Playgroud)
现在我需要每隔n秒自动刷新"mydiv"的内容(所以不要点击链接).我尝试过以下解决方案:
但没有运气.
在我的application.js中我写了这个:
function executeQuery() {
$.ajax({
//url: '/index',
success: function(data) {
$('#mydiv').html(data)
}
});
setTimeout(executeQuery, 500);
}
$(document).ready(function() {
setTimeout(executeQuery, 500);
});
Run Code Online (Sandbox Code Playgroud)
对于谁面临同样的问题,我通过更换来解决它
$('#mydiv').html(data)
Run Code Online (Sandbox Code Playgroud)
同
$('#mydiv').load('/mycontroller/index #mydiv')
Run Code Online (Sandbox Code Playgroud)
小智 0
在操作中将布局设置为 false 并仅传递相关内容,而不是整个页面
def action1
<your code here>
end
def action2
<your code here>
render :layout => false
end
Run Code Online (Sandbox Code Playgroud)
您的 action2 视图应该包含仅与 #mydiv 相关的内容。
更好的解决方案是使用单个操作并根据请求类型更改渲染选项。(Ajax 或非 Ajax)
归档时间: |
|
查看次数: |
9007 次 |
最近记录: |