2013-06-07 2 views
1

Мы хотим зарегистрировать JavaScript на нашем веб-сайте. Для этого я переписываю функции журнала своей собственной реализацией.Событие при завершении звонка/JavaScript

На стороне сервера мы используем Log4Net для нашего ведения журнала. Теперь моя идея - захватить журнал на стороне клиента и отправить его на сервер с помощью ajax. Как бы то ни было, я не хочу отправлять запрос Ajax каждый раз, когда кто-то вводит журнал. Поэтому моя идея состояла в том, чтобы поймать все журналы и отправить ОДИН запрос после того, как стек вызовов закончился, где он начался.

Есть ли событие или способ обнаружить, когда call-stack «закончился»?

+0

Вы можете использовать метод onbeforeunload, показанный на http://stackoverflow.com/a/276739/1091251 – Habibillah

ответ

1

Вы можете попытаться использовать javascript beforeunload событие для отправки своего журнала, когда пользователь покидает страницу. Если вы используете JQuery, код выглядит следующим образом:

$(window).bind("beforeunload",function(event) { 
    //... put your ajax code here ... 

    return "The log has sent to server."; 
}); 

однако beforeunload событие будет отображаться окно сообщения на экране.

Кроме того, если вы хотите запустить функцию за другой функции запуска, вы можете использовать JQuery $.when() метод, как показано ниже:

$.when(functionOne(), functionTwo()).then(functionThree()).done(functionFour()); 

functionOne(), functionTwo(), functionThree(), и functionFour() должны be deferred object. This blog дать простое объяснение, как реализовать отложенный объект.

+0

Это событие запускается, когда пользователь покидает сайт. Я хочу иметь событие, которое вызывает, когда функция заканчивается. Как это 'функция одна() {} функция два() { один(); } 2(); ' // В конце двух событий событие должно срабатывать, поскольку оно находится в стеке вызовов. –

+2

@KevinBoss Почему бы просто не добавить функцию в конец после двух(), вызывающих функцию журнала? – K3N

+0

Потому что я не хочу, чтобы пользователь функции обрабатывал ajax. –

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