jquery的页面请求

时间:2011-06-25 02:15:32

标签: jquery ruby-on-rails-3

我可以使用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以便它停止轮询?)

2 个答案:

答案 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>这就是全部。你倒计时将从页面加载开始。