2014-09-16 3 views
0

У меня есть следующий JS, в настоящее время это как раз перед моим закрывающим тегом телаRun Javascript до того Page_Load события

<script type='text/javascript' src='https://www.mydomain.com/jtrack.js'></script> 
<script type='text/javascript' > 
if (typeof trackPage == 'function') trackPage(); 
</script> 

Часть этого сценария наборы печенье, которые мне нужно прочитать в случае Page_Load моей осины. net page. Но это событие срабатывает до того, как будет установлен файл cookie. Как я могу изменить это, чтобы сценарий запускался первым?

Thanks

+0

Рассматривали ли вы настройку cookie на странице, которая открыта непосредственно перед открытием этой страницы? – user2721607

ответ

3

Простой ответ, вы не можете. Это технически невозможно.

Если вы посмотрите на ASP.NET page lifecycle overview, вы увидите, что событие загрузки страницы происходит до того, как страница начнет рендеринг - что сделало бы полностью невозможным для клиента выполнение JavaScript на странице в этот момент, пользователь агент (браузер) даже не начал, чтобы получить страницу. За исключением исключения, все события жизненного цикла страницы ASP.NET происходят на сервере и до того, как пользователь отправит любой ответ.

Событие разгрузки вряд ли когда-либо выполнится после вашего JavaScript, если вы не передаете ответ пользователю, имел JavaScript (без зависимостей) в первой возможной точке страницы и создавал действительно сложную страницу ответ. Даже если JavaScript каким-то образом выполнялся до запуска события разгрузки, это не имело бы значения, поскольку файлы cookie отправляются со страницей с запросом, и это уже произошло. Куки-файлы не будут отправляться до следующего запроса из этого домена (хотя он не должен быть запрашиваемой страницей, изображения, сценарии или запросы стилей будут включать в себя файлы cookie в своих заголовках запроса).

Возможно, ваш JavaScript настроил куки-файл по первому запросу, который затем будет доступен для всех последующих запросов в обработчике событий загрузки и будет использовать запрос Ajax (если необходимо) для регистрации этой начальной страницы и назначенного значения cookie - который будет отправлен (при условии, что он был установлен в этой точке) в заголовках для запроса Ajax.

То, что вы не можете сделать, это установить cookie в браузере пользователя до того, как пользователь посетит ваш сайт, выполнит JavaScript до его отправки пользователю или отправит часть запроса данных через ответ.

Смежные вопросы