2011-08-03 6 views
0

私は2つのタイマーがあるように私は次のシナリオで立ち往生した。ユーザーがログインしていて、タスクを完了した場合は、タスクを完了するための推定時間について言及する必要があります。推定時間が言及され、私のアプリケーションでタスクが開始されると、Javaスクリプトであるカウントダウンタイマーが実行され、最初のタイマーが00:00:00:00になると最終的に00:00:00:00に減少しますタイマーは、ユーザによって与えられた推定時間の終了から増加するように開始する。 reload.location(true)を使用しました。タイマーが00:00:00:00になると、マイページが一度更新され、2番目のタイマーが表示されます。しかし、私はページをリフレッシュせずに2番目のタイマーをロードしたい。参照のために私はアプリケーションからコードを貼り付けています。ページを更新せずに2番目のjavascriptを呼び出す方法はありますか?私show.rhtmlでページを更新せずに2つの異なるJavaスクリプトを呼び出す方法は?

:あなたは私は1つは私が「パーシャルに係る_countdown_timerと_exceeded_countdown_timer.Inコードである2つのパーシャルをレンダリングしています上記のコードで見ることができるように、私は次のコード

<%# Added by RE4 - Countdown Timer %> 

    <% if (User.current == @issue.assigned_to) || User.current.admin? %> 

     <h3><%= "Time Left" %></h3> 

     <%= javascript_include_tag('timer.js') %> 

     <%= render :partial => "issues/countdown_timer", :locals => {:issue => @issue} %> 

    <% end %> 

    <div style="font-size: 30px;"> 

     <div id="countdown_timer"></div> 

    </div> 

    <%# Countdown timer end %> 



<%# Countdown Timer for exceeded time %> 

    <% if (User.current == @issue.assigned_to) || User.current.admin? %> 

     <h3><%= "Exceeding Time" %></h3> 

      <%= javascript_include_tag('timer_two.js') %> 

      <%= render :partial => "issues/exceeded_countdown_timer", :locals => {:issue => @issue} %> 

<% end %> 

    <div style="font-size: 30px; color: red;"> 

     <div id="exceeded_countdown_timer"></div> 

    </div> 


end 

を書かれていますM日、時間、秒分を計算し、2つのタイマ_countdown_timer.rhtmlで

に値を渡す:_exceeded_couで同じように

<script> 

    window.onload = init; 

    function init() 

    { 

    timer.init(@days,@hours,@minutes, @seconds,'countdown_timer'); 

    } 

    </script> 

ntdown_timer.rhtml

<script type="text/javascript"> 

    window.onload = init2; 

    function init2() 

    { 

    timer_two.init(@days,@hours,@minutes,@seconds,'exceeded_countdown_timer'); 

    } 

    </script> 

私のタイマーでも、我々はページを更新動作するように私は、日、時間、分、秒の値を渡しているすべての秒間継続し、両方のパーシャルで上記のコードから。ショーページから、私はこの2つのパーシャルを呼び出しています。このパーシャルは、条件に応じてタイマーを呼び出します。 2つのタイマに関連するコードは、私は、ページがリフレッシュされますlocation.reload(true)を起動していた値がゼロになっているときは、両方のtimer_one.js

を見ることができるよう

if(timer.hours == 0) 

{ 

    if(timer.days == 0) 

    { 

     location.reload(true) 

     clearInterval(timer.samay); 

     timerComplete(this.elm); 

     return; 

    } 

    else 

    { 

    timer.seconds=60; 

    timer.minutes=59; 

    timer.hours=23; 

    timer.days--; 

    } 

} 

そうTimer_one.js であるように、第2タイマーが表示されます。しかし、私はこれが起こることを望んでいません。最初のタイマーが00:00:00:00になると、ページを更新せずに2番目のタイマーが自動的に開始されます。

私を助けてください。あらゆる種類の助けを歓迎します。

+0

最初に私の質問が不完全に提出され、正確な情報が追加されました。それを見てください。ご不便おかけしてすみません。 – Sam

答えて

0

開始時間と見積もり時間を取得する方が簡単ですし、残っている時間も延期されている時間もいつでも計算できます。

次に、ゼロになるまでの残り時間を表示するタイマーが1つだけ必要です。時間オーバーランも表示されます。

+0

すみません、私はあなたを手に入れませんでした。実際に私は2つのタイマーを1デクリメントと他の増分を実装しています。すべてがうまく機能しています。 timer.jsに表示されているように、私はreload.location(true)を使っているので、そのページをリフレッシュして、推定時間の後に2番目のタイマーを見ることができます。換言すれば、現在、推定時間が完了すると、リフレッシュは第2のタイマーを見る必要がある。しかし、私はそれをさわやかにしたくありません。時間の見積もりが完了したら、私は2番目のタイマーを開始する必要があります爽やかにせずに。 – Sam

関連する問題