Каков окончательный способ вызова jjery ajax-функции перед выгрузкой окна? - PullRequest
3 голосов
/ 28 марта 2011

Мне нужно вызвать функцию jquery ajax () перед загрузкой окна. В моем случае это POST, и меня не волнует возвращаемый результат, я просто хочу обновить базу данных.

Таким образом, ответ, по-видимому, заключается в том, чтобы связать функцию с событием unload, т. Е. Использовать функцию jquery unload (), и эта функция выполняет вызов ajax. Кроме того, я знаю, что вы должны добавить синхронный параметр в вызов. Другими словами, добавьте async: false к вызову jquery ajax ().

Тем не менее, я попробовал все это, и он не работает на IE8! Я проверял это много раз, и он просто не будет работать на IE8. Прекрасно работает в Firefox и Chrome.

Еще более странным является то, что после закрытия всего приложения IE8 создается впечатление, что вызов проходит! Это кэшируется?

Поэтому другие люди предлагают связать ajax перед загрузкой с помощью jquery bind (). Однако, кажется, есть некоторые смешанные ответы о том, будет ли это работать во всех браузерах.

Я еще не пробовал beforeunload, так как это похоже на "хакерский" способ сделать это. Однако, если это работает, то мне все равно, пока это работает.

1 Ответ

0 голосов
/ 28 марта 2011

Не можете ли вы вызвать функцию в теге body страницы?

<body onbeforeunload="funcName(param)">

таким образом, каждый раз, когда страница выгружается, она вызывает вашу функцию, и вам не нужно беспокоиться о связывании.

...