AJAX работает таким образом? - PullRequest
2 голосов
/ 09 сентября 2010

Недавно у меня возникла ситуация, когда мне нужно установить бит в базе данных от 1 до 0 на веб-странице при событии закрытия, и я обнаружил, что такого события нет, кроме события unload, поэтому я подумал, что могу сгенерировать вызов AJAX изit.

Теперь, когда кто-то пытается закрыть браузер, он должен быть немедленно закрыт из-за UE, и если у меня будет AJAX-запрос, который немного изменится с 1 на 0 в базе данных, он, вероятно, будетзанимает секунду в моем интернет-соединении, но кто-то на другой стороне может иметь медленное соединение, и браузер будет ждать немного дольше, прежде чем закрыть.Я прав?Или браузер будет скрыт и будет выполнять запрос AJAX в фоновом режиме?

Или, если вы считаете, что доступно любое другое решение, которое будет полезно.

Ответы [ 2 ]

5 голосов
/ 09 сентября 2010

Это не надежный способ сделать это. Не гарантируется, что браузер выполнит запрос, и это также может отрицательно повлиять на работу пользователя.

Вот страница с подробной информацией о лучших способах достижения этой цели:
http://ajaxpatterns.org/Heartbeat

1 голос
/ 09 сентября 2010

Вы можете попытаться вызвать диалог alert() после запуска события AJAX. Это будет держать браузер открытым, пока пользователь не сможет подтвердить предупреждение. Но кроме этого, вы ничего не можете сделать, чтобы предотвратить завершение работы браузера до того, как AJAX пройдет (или вообще не сработает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...