|
|
|
| Здравствуйте!
Вопрос мой очень неконкретный.
Я пытаюсь понять технологию защиты от повторного голосования. Речь идет о одноразовом выставлении оценки какому-либо комменту или статье зарегистрированным пользователем. Мне интересен механизм блокировки повторного голосования.
Просмотрев исходники многих сайтов, где эта идея реализована, я пытался разобраться в сути функций JS, обеспечивающих эту "одноразовость". Но... но понял лишь, что присутствует и серверная часть. Это само собой.
Казалось бы, все просто - проголосовал, получил куку...
Но, ведь, на многих сайтах мы оцениваем сотни комментов и новостей, вроде как на http://dirty.ru и т.д. И уже оцененные комменты не позволяют выставить себе оценку повторно.
И Это реализовано без кук (представляете полторы тысячи кук??) и, наверное, без записи в таблицу с новостью списка проголосовавших (там, например, 39000 зарегистрированных пользователей!).
Буду рад узнать суть механизма реализации подобных голосований.
Спасибо. | |
|
|
|
|
|
|
|
для: Deed
(18.07.2012 в 22:06)
| | Кукисы используются чаще всего при "открытых" голосованиях, когда голосовать могут любые (в т.ч. незарегистрированные) пользователи.
Во всех иных случаях у всякой статьи (коммента, голосования) существует файл-спутник, в котором прописан дополняемый список проголосовавших.
При запросе страницы статьи (коммента) зарегистрированным пользователем его никнейм сверяется со списком и на сервере формируется вывод содержания - с возможностью проголосовать, либо без таковой (для уже проголосовавших).
JS-коды на страницах, где есть голосование, в основном предназначены для того, чтобы при голосовании без перезагрузки страницы обеспечить:
--дописывание списка проголосовавших в файл-спутник страницы
--видимо изменить рейтинг на странице
--убрать возможность голосования | |
|
|
|
|
|
|
|
для: ЯСА
(18.07.2012 в 22:34)
| | Здравствуйте, ЯСА!
Это я понимаю. Вот только не верится, что в таблице с новостью хранится список всех, за нее проголосовавших! А если их тысяча?? Это ж какой размер базы будет??! | |
|
|
|
|
|
|
|
для: Deed
(18.07.2012 в 23:25)
| | Тысяча логинов * на 20 символов в среднем * на 4 байта на символ = 80 000 байт ~ 78 кБ.
Это копейки.
Последняя версия JQuery - 96 кБ весит :-) | |
|
|
|
|
|
|
|
для: ЯСА
(19.07.2012 в 00:26)
| | Спасибо большое!
А как Вы считаете, что будет лучше - создать отдельную таблицу со списком голосовавших или держать этот список в таблицах с самим оцененным контентом? | |
|
|
|