Как я могу сохранить некоторую информацию о состоянии JavaScript обратно на мой сервер при загрузке? - PullRequest
1 голос
/ 16 сентября 2008

У меня есть сетка ExtJS на веб-странице, и я хотел бы сохранить часть ее информации о состоянии обратно на сервер, когда пользователи покидают страницу. Могу ли я сделать это с помощью Ajax-запроса на Unload? Если нет, то какое решение лучше?

Ответы [ 4 ]

2 голосов
/ 16 сентября 2008

Вы можете использовать Ajax-запрос, но обязательно сделайте его синхронным, а не асинхронным. Кроме того, просто сохраняйте состояние всякий раз, когда пользователь вносит изменения, это также защищает данные в случае сбоя браузера пользователя.

1 голос
/ 16 сентября 2008

Выше приведен ответ, в котором говорится, что нужно использовать синхронный вызов ajax, и это лучший вариант. Проблема в том, что выгрузка не работает везде. Если вы посмотрите здесь , вы найдете несколько хитростей, которые помогут вам получить события выгрузки в Safari ... Вы также можете использовать Google Gears для сохранения контента на стороне пользователя в ситуациях, когда пользователь вернется, но Единственный полностью безопасный способ сохранить эту информацию - это непрерывно отправлять ее, пока пользователь находится на странице или вносит изменения.

0 голосов
/ 16 сентября 2008

Зависит от того, как пользователь покидает страницу. Если в вашем графическом интерфейсе есть кнопка выхода из системы, вы можете вызвать ajax-запрос, когда пользователь нажимает на эту кнопку. В противном случае я не думаю, что это хорошая идея сделать запрос в onUnload. Как уже говорилось ранее, вам нужно сделать синхронный запрос ... Альтернативой решению cookie может быть скрытое текстовое поле. Это метод, обычно используемый такими инструментами, как RSH , которые имеют дело с историческими проблемами, которые идут с ajax.

0 голосов
/ 16 сентября 2008

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

Недостатком использования ajax является то, что он может замедлить фактическое закрытие окна браузера, что может раздражать, если сервер медленно отвечает.

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