asp.net MVC中的倒计时器

7rfyedvj  于 2022-11-26  发布在  .NET
关注(0)|答案(3)|浏览(257)

我正在使用此code在_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插件倒计时计时器,但它显示对象不支持IE中的此属性错误。
任何建议都将是有帮助的。

3gtaxfhh

3gtaxfhh1#

1.如何显示计时器,而在它导航到新页时不重新启动。您可以将计数器值存储在Cookie中。这是
简单的方法是在页面之间传递值。
2.如何停止用户刷新页面,使计时器不再启动。
如果你用一个cookie来存储这个值,我想这个问题是可以解决的。
你的确切目标是什么?

e4yzc0pl

e4yzc0pl2#

使用一个ajax函数调用一个动作,这个动作将把计时器的值存储在session中。2这样,即使用户刷新了页面,你仍然拥有当前的值。
希望这对你有帮助

jdzmm42g

jdzmm42g3#

您可以在每次回发或页面刷新时使用与服务器端代码同步的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/

相关问题