5

このコードを使用して、_Layout.cshtml ページにカウントダウン タイマーを表示しています。
しかし、あるページから別のページに移動すると、新しいページが読み込まれるとタイマーが再び開始されます。1.新しいページに移動したときにタイマーを再起動せずに表示する方法。
2.タイマーが再び開始されないように、ユーザーがページを更新するのを停止する方法。

私のレイアウトコード:

     <table width="100%">
   <tr>
   <td width="2%">
   <img src="~/Images/philips_new.png" alt="" height="45" width="155" />
   </td>
   <td width="79%" align="right" class="Text_nocolor">
   <span class="Text_nocolor">
  @{ Html.RenderAction("GetUserName", "Login");}
   </span>
  </td>
  <td width="4%">
<div id="counter">
 </div>
 </td>
 <td width="4%" class="Text_nocolor" valign="middle">
    <a href="@Url.Action("Index", "Login", new { controller = "Login" })">
 <img src="~/Images/nome-logout.png" alt="" height="24" width="30" style="border-style: none; cursor: pointer;" /></a>
  </td>
  </tr>
 </table>

jquery プラグインの countdown timer を使用してみましたが、オブジェクトが IE でこのプロパティをサポートしていないというエラーが表示されます。
どんな提案も役に立ちます。

4

3 に答える 3

0

ajax 関数を使用して、タイマー値をセッションに保存するアクションを呼び出します。したがって、ユーザーがページを更新しても、現在の値が保持されます。

お役に立てれば

于 2012-11-23T12:19:57.603 に答える
0

ポストバックまたはページの更新ごとにサーバー側のコードと同期する JavaScript 時間を使用できます。

次のコードを使用します

 var dt = '@ViewBag.EndDate';
var dateAr = dt.split('-');
var newDate = dateAr[1] + '/' + dateAr[0] + '/' + dateAr[2];

var end = new Date(dateAr[1] + '/' + dateAr[0] + '/' + dateAr[2]);

var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;

function showRemaining() {
   var now = new Date();
   var distance = end - now;
   if (distance &lt; 0) {
       clearInterval(timer);
       document.getElementById('countdown').innerHTML = 'EXPIRED!';
       window.location.href = '/Home/Index';

       return;
   }
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);


document.getElementById('countdown').innerHTML = hours + 'hrs ';
document.getElementById('countdown').innerHTML += minutes + 'mins ';
document.getElementById('countdown').innerHTML += seconds + 'secs';

}

timer = setInterval(showRemaining, 1000);

このリンクをたどることができます

http://www.csharptrick.com/2014/09/count-timer-asp-net-mvc-exams/

于 2014-09-20T11:28:46.473 に答える
0

1.新しいページに移動したときにタイマーを再起動せずに表示する方法。カウンター値を Cookie に保存できます。これは

簡単な方法として、ページ間で値を渡すことができます。

2.タイマーが再び開始されないように、ユーザーがページを更新するのを停止する方法。

値の保存に Cookie を使用している場合、これは解決できると思います。この問題であなたが何を意味しているのかわかりません。

あなたの正確な目的は何ですか?

于 2012-11-20T10:49:18.537 に答える