Выйти из опроса - PullRequest
       11

Выйти из опроса

1 голос
/ 09 октября 2009

Я пытаюсь создать всплывающее окно для выхода для опроса выхода для сайта, над которым я работаю. Самое распространенное решение, с которым я столкнулся, это перехватить событие onunload страницы и добавить обработчик событий ко всем событиям щелчка ссылки, чтобы заблокировать всплывающее окно.

пример: http://www.pgrs.net/2008/1/30/popup-when-leaving-website

У этого подхода есть пара проблем:

Во-первых, вы не сможете обнаружить такие события, как обновление страницы или изменение URL-адреса вручную, поскольку это событие браузера, а не событие страницы.

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

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

Ответы [ 2 ]

1 голос
/ 09 октября 2009

Возможно, не то, что вы искали, но есть ли у пользователей учетная запись и адрес электронной почты, зарегистрированные на сайте?

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

1 голос
/ 09 октября 2009

Вы не можете решить эту проблему.

Во-первых, вы не сможете обнаружить такие события, как обновление страницы или ручное изменение URL, так как это событие браузера, а не событие страницы.

На самом деле, я ожидал бы, что все эти вещи все еще будут запускать onunload, хотя я не уверен на 100%. Я был бы удивлен, если бы они этого не сделали.

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

Да. Если вы не приложите к этому огромных усилий, вы не сможете решить их. И что составляет огромные усилия? Когда-нибудь видели Gmail? И как он показывает вас внизу, откуда вы вошли, и способность удаленно пнуть людей? Примерно так: страницы пингуют сервер, а сервер поддерживает состояние и постоянную связь.

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