从asp.net mvc中的global.asax调用javascript函数

时间:2009-10-21 11:37:38

标签: javascript asp.net-mvc global-asax

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

4 个答案:

答案 0 :(得分: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,而无需服务器请求。

答案 1 :(得分:0)

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

这不是这样做的地方。

您是否考虑过使用主页?

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如何在着陆页的加载位置检查应用程序级别变量(主页也可以),并在那里注册任何javascript并设置变量。

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