我可以使用jquery发起整页请求而不是异步请求吗?
我正在为测试应用实施倒数计时器。我希望时间可以持续通过页面请求,所以我跟踪时间服务器端而不是浏览器。我有一个jquery脚本每秒轮询一次动作来检查时间并将剩余时间渲染到html元素。我的代码:
查看:
<div id='timer'></div>
的application.js:
setInterval(function(){
$('#timer').load('/exams/time');
}, 1000);
控制器:
def time
time = check_time
if time
render :text => time
else
stop_exam
end
end
def stop_exam
@exam = Exam.find(session[:exam])
@exam.stop
reset_session
redirect_to @exam
end
倒计时工作正常。但是,在重定向之后,@ exam会写入而不是替换整个页面。据推测,它将重定向视为AJAX请求而不是整页请求。
如何修改stop_exam以替换整个页面(包括javascript以便它停止轮询?)
答案 0 :(得分:2)
您可以返回加载到div中的脚本将重定向。我不知道ruby语法,但返回这样的内容:
<script type='text/javascript'>
document.location='http://www.google.com';
</script>
答案 1 :(得分:0)
将此代码添加到您的视图中。 还要添加一个id为'count'的div。
<script type="text/javascript" >
window.onload = function()
{
startCountdown(<%=cnt=@model.allowed_time%>)
}
</script>
{{2p>这就是全部。你倒计时将从页面加载开始。