0

如何从asp.net mvc(C#)应用程序中global.asax的Application_Start调用或制作javascript函数?

4

4 回答 4

1

您可以记住 Session 或 cookie 中的最后一次“调用”时间(这对 javascript 来说更容易,但对性能/等来说更糟),然后

function check() {
   // or var lasttime = <%= Session["lasttime"] %>;
   if (now - $.cookie("lasttime") > timeout)
   {
     $.cookie("lasttime", now);
     performAction();
   }
   window.setTimeout(check, 1000);
}

您可以从 $(document).ready() 调用一次时间函数。

但请注意,浏览器可能需要几秒钟才能呈现页面,或者可能会遇到 404 或其他错误并且页面将处于非活动状态...... javascript 不是执行预定操作的可靠方法。

另一种方法是将计时器放在服务器上。像上面这样的 JavaScript 函数会不时地请求它,传递用户 ID 或类似的东西。这将防止在页面重新加载期间重置计时器。但是你必须经常请求。所以最好的解决方案是结合两种技术:

  1. 在服务器上运行计时器
  2. 页面渲染时,设置 var inited = false;
  3. 像这样运行上面的函数: if (!inited) timer = $.getJSON("/timer?uid=x"); 并且当您拥有精确的当前计时器时,您可以仅继续使用 JavaScript,而无需服务器请求。
于 2009-10-21T18:16:59.740 回答
0

“javascript函数通过jquery从数据库中获取要显示给用户的数据。javascript函数将使用setTimeout定期执行”

这不会是这样做的地方。

您是否考虑过使用您的母版页?

于 2009-10-21T11:39:22.983 回答
0

由于 JavaScript 在客户端执行,而 global.asax 在服务器端执行。你不能这样做。

于 2009-10-21T11:43:53.040 回答
0

您如何在登录页面加载时检查应用程序级别变量(母版页也可以)并在那里注册任何 javascript 并设置变量。

如果设置了变量,您可以跳过注册。

于 2016-04-01T09:12:28.313 回答