Вызов функции JavaScript из global.asax в asp.net mvc - PullRequest
0 голосов
/ 21 октября 2009

Как вызвать или сделать функцию javascript из Application_Start файла global.asax в приложении asp.net mvc (C #)?

Ответы [ 4 ]

1 голос
/ 21 октября 2009

Вы можете вспомнить последнее время "вызова" в сеансе или файлах 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, как описано выше, будет просто время от времени запрашивать ее, передавая идентификатор пользователя или что-то в этом роде. Это предотвратит сброс таймера во время перезагрузки страницы. Но вам придется делать запрос слишком часто. Поэтому лучшим решением было бы объединить две техники:

  1. Запустить таймер на сервере
  2. Когда страница отображается, установите var inited = false;
  3. Запустите функцию выше, но вот так: if (! Inited) timer = $ .getJSON ("/ timer? Uid = x"); и когда у вас есть точный текущий таймер, вы можете продолжать только с JavaScript, без запросов к серверу.
0 голосов
/ 01 апреля 2016

Как насчет того, чтобы вы проверяли переменную уровня приложения при загрузке вашей целевой страницы (также подойдет главная страница) и регистрировали там любой javascript и устанавливали переменную.

Вы можете пропустить регистрацию, если установлена ​​переменная.

0 голосов
/ 21 октября 2009

Поскольку JavaScript выполняется на стороне клиента, а global.asax выполняется на стороне сервера. Вы не можете этого сделать.

0 голосов
/ 21 октября 2009

"Функция javascript получает данные, которые будут показаны Пользователю, из базы данных через jquery. Функция javascript будет периодически выполняться с использованием setTimeout"

Это не место для этого.

Думали ли вы об использовании своей главной страницы?

...