диалоговое окно, когда «х» нажата скрыть навсегда (JavaScript) - PullRequest
0 голосов
/ 21 декабря 2010

поэтому, когда пользователь впервые заходит на сайт , я хочу показать диалоговое окно, а когда пользователь нажимает «x» или «скрыть», я хочу скрыть его от этого пользователя навсегда .

это работает только с файлами cookie, верно?

, поэтому, когда пользователь очищает свои файлы cookie, он / она снова увидит диалоговое окно, в следующий разпосетите сайт, я полагаю.

или есть лучший / более распространенный способ сделать это?

Ответы [ 5 ]

1 голос
/ 21 декабря 2010

Нет, и не должно быть.Файлы cookie являются единственным средством сохранения информации на сайте.Разрешение сайту делать что-либо еще - серьезное нарушение безопасности.

1 голос
/ 21 декабря 2010

Можете ли вы сохранить недвижимость на пользователя? Это может быть false по умолчанию, и когда вы нажимаете 'x', вы можете сделать AJAX-вызов, который устанавливает его на true. Ваше диалоговое окно может отключить это свойство ...

Таким образом, вам не придется беспокоиться о сценарии, когда пользователь очищает куки. Конечно, это будет работать только в том случае, если у вас есть пользовательские объекты на стороне сервера, и он хранит дополнительные данные, чтобы преодолеть очень маленькую проблему, поэтому это не может быть хорошей практикой. Просто идея.

0 голосов
/ 21 декабря 2010

Файлы cookie являются правильным ответом на постоянное состояние, но это не пуленепробиваемое решение.

Что если пользователь заходит на ваш сайт на одном компьютере, а затем снова заходит с другого компьютера?Они увидят сообщение дважды.Обычно в таких случаях я рекомендую переосмыслить ваш подход.

  • Какова цель диалога?
  • Есть ли причина, по которой пользователь не должен видеть его во второй раз?
  • Можно ли разместить его в другом месте на странице для того же / лучшего эффекта?

Если вы действительно хотите быть противными с куки, вы можете посмотреть на evercookie .Но, пожалуйста, используйте свои силы только во благо или во благо.

0 голосов
/ 21 декабря 2010

Создайте таблицу user_properties, добавьте столбец "firstTimeDialog" (или isVirgin) как SMALLINT со значением по умолчанию '1'. когда пользователь щелкает по полю, отправьте AJAX-вызов на серверную сторону, чтобы изменить значение на 0. Загрузите пользовательские свойства с пользовательской информацией в сеанс при входе в систему, и вы очень простой способ проверить, является ли он пользователем впервые.

Помните, что пользователи в первый раз должны быть запоминающимися, поэтому будьте нежны.

0 голосов
/ 21 декабря 2010

Это довольно распространенный подход к сохраненному состоянию.

...