|
|
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
Доброго дня всем! Я к сожалению вообще не знаком с java, поэтому, прежде чем устраивать какие то движения, хочу посоветоваться со знающими людьми: возможно ли при помощи javascript сделать простейшую голосовалку в виде двух символов (цифра - текущее значение и символ "+" - aля кнопка, увеличивающий текущее значение на 1 при нажатии), так что бы авторизированные посетители могли вставлять этот скрипт на страничку для проведения голосования, к примеру такого: Таблица: 1 Вариант 1 3 +2 Вариант 2 0 +3 Вариант 3 13 + соответственно другие авторизированные посетители нажимают на "+" и тем самым высказывая свое предпочтение Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 14:08 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
забыл добавить: как само значение кол-ва голосов будет храниться - не важно, но точно не в базе. Было бы идеально если скрип выдергивал текст из соседней слева колонки таблицы (это число), увеличивал и вставлял обратно уже новое (если такое возможно конечно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 14:12 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
Без хранилища - никак. Если в памяти сервера хранить - потеряется при перезагрузке, если предложенным тобой вариантом, то это замечательное поле для инсинуаций. В любом случае - это будет неправдоподобный счетчик. Поэтому хранилище обязательно. Хранение значений, скажем, в файле неудобно и сложно - прямо писать нельзя - это не потокобезопасно (может быть конкурентное обращение к файлу), а пул для записи в файл - не знаю, не слишком ли для такой задачи. Поэтому остается база. Кроме этого, надо базировать доступ к голосованию или на основе авторизации (один человек - один голос), либо на основе сессии (голосовать можно только раз из запущенного браузера), опять же, где-то надо хранить заходивших. P.S. При чем тут Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 14:28 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, спасибо что отозвались! Ну джаваскрипт по моему наилучшей инструмент для такой фишки. Если я ошибаюсь, поправьте. А по поводу хранения - в базу никак, если я предложу хранение в базе - идея сразу будет зарублена, т.к. такие таблички будут создаваться массово, а практического значения эти данные не имеют вообще никакого, идея только для повышения интереса (пользователи отдают голоса за ту команду, которая по их мнению выиграет). А почему мой вариант плохой? Разве нельзя написать функцию, которая будет считывать и затем менять содержание хтмл-страницы в определенной позиции? Эта цифра (кол-во голосов) нужна только визуально, больше ни для чего. Что касается "одноразового" голосования - это конечно нужно, но для начала и без такой проверки можно, т.к. кол-во голосов никому приоритета или выгоды не дает, факт многоразового голосования бессмыслен. Ну а в будущем, если идея приживется, разработчики уже будут вынуждены улучшить её :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 14:56 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
kmdsanta, если один перец на своей компутере, в своём браузере проголосует, то другой перец на другом компутере этого не узнает никогда. Т.к. данные не передадутся на сервер, не сохранятся, не обновятся у другого перца. Вам нужна голосовалка аля "Сам придумал, сам поржал"? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:09 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
P.S. Вы не занкомы с Java, не знакомы c JavaScript. А с чем Вы вообще знакомы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:10 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
skyANA, с базами данных, а по теме - ни с чем :( иначе я бы тут не писал Вам нужна голосовалка аля "Сам придумал, сам поржал"? :) такая конечно не нужна, но, откуда пользователь загружает эту страницу? Ну если написал на форуме сообщение "5" и нажал отправить, не один же я его вижу?? А потом нажал редактировать и исправил 5 на 6 и опять отправить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:18 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
kmdsanta, Элементарно делается, но нужно знать JavaScript Сам делаю так: JavaScript позволяет проголосовать 1 раз, если браузер поддерживает localStorage, иначе только просмотр результатов. При выборе варианта JS записывает в localStorage браузера флаг, дергает POST-запросом сервер с номером варианта или с нулем. Серверный скрипт, если приходит не 0, делает инкремент в обычном текстовом файле напротив нужного варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:28 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
черт, случайно нажал Ctrl+Enter... Далее: серверный скрипт всегда возвращает результаты голосования как хотите сами (у меня в табличке). JavaScript выводит окно с результатом. Даже можно вставлять одинаковый html-код на любой странице для опроса понравилась-ли страница. Остальное делает JavaScript - смотрит window.location.href и отправляет его серверному скрипту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:31 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, кстати, как тебе идея вычислять клонов через localStorage? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 15:54 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
asws, спасибо, это уже ближе :) но всё же, сервер может вместо того что бы делать изменения в файле, отредактировать мое сообщение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 17:20 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
по сути не надо даже цифры с кол-вом голосов, а просто например кнопка вместо "+", при нажатии которой изменяется её текст (счетчик нажатий) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 17:23 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
kmdsanta, Когда два пользователя одновременно нажмут плюсы, у одного (кому больше повезёт) начнётся запись в файл на сервере немного раньше. А усилия второго пропадут даром, так как файл будет заблокирован. Без использования БД у вас останутся примерно такие варианты: 1) на--ть на пользователей (ну, это же всё только для вида делается), пусть мучаются и тычут в кнопки, матерясь; 2) мучать серверный скрипт, проверяя в цикле доступность файла на запись до тех пор, пока не удастся записать новое значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 17:49 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
stopkran, я согласен что такой способ не самый удачный, но как я уже говорил, нужно простое решение для того что бы проверить пригодность идеи, и если она приживется, то тогда сделать все по уму. В как я уже понял, в данном случае простота не значит работоспособность :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 17:58 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
ну, для кого что проще. Я не вижу способа проще, чем БД. Сам делаю такие голосования на сайтах "в один клик", в одну таблицу можно запихать хоть сто тыщ голосований. Я просто не понимаю, почему файл кажется вам более простым решением: у файлов ведь должны быть имена, за ними надо следить, помнить о них, удалять ненужные... Одна таблица - или тыща файлов? (бррр...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 18:23 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
stopkran, если честно я сразу склонялся к БД. Но реализовывать не особо хотят, т.к. не сильно актуально. А по сути там делов то: одна таблица с двумя поля: идентификатор голосовалки и значение (если я правильно понял возможности идентификации скрипта при вставки на страницу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 18:42 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
kmdsanta, stopkran, Ну насчет текстового файла - у меня свой счетчик посещений по сайтам пишет сначала все в текстовый файл (вернее 2 файла - четный и нечетный, смотря какой час), а потом раз в час в БД из этого файла распределяет, заодно порверяя, да и мне всегда оперативно можно вмешаться перед записью в БД. Есть сайты с несколькими тысячами посещений в день - пока проблем с текстовыми файлами небыло. К тому-же голосовалка даже по всем страницам сайта может быть в одном файле, а не в нескольких (одна строка на страницу сайта, сначала URL, потом варианты ответов через разделитель, например табуляцию). Невероятно быстрый поиск, обновление файла и запись на диск. БД по скорости проиграет файловой системе однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 22:57 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
Забыл добавить, что в случае голосовалки, читаю весь текстовый файл в переменную, меняю, потом перезаписываю файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 23:20 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
опять нажал Ctrl+Enter... а в случае добавления записи делаю через fopen() в режиме добавления, чтобы не блокировалось. Зато многих проблем нет и небудет. Ну один из многих тысяч не сможет с первого раза голосонуть - в чем проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2012, 23:22 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
kmdsanta, нет, там "делов" намного больше! :-) Вы нас тут не слушайте, попробуйте таки сделать рабочий кусок программы - голосование (хоть в сессии временный результат пока храните, для одного пользователя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:37 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
asws, вариант с БД более управляемый. Что будет делать ваше голосование, если пользователь передумал и захотел через минуту проголосовать за пункт Б (вместо А)? Да и по ресурсам: для скрипта дешевле передать в MySQL данные и забыть. В файл писать - больше памяти надо (и процессора, думаю, тоже). А скорость здесь (при записи) вряд ли самое критичное место. Или у вас там онлайн игрушка ?.. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:43 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
stopkran, Не спорю. Всего-лишь предложил как один из вариантов сделать быстро, если ВСЕ посетители могут голосовать БЕЗ авторизации. Клиент захотел узнать мнение посетителей о меню и некоторых страницах своего сайта, так за полчаса ему запилил и там и там :) Если чистить localStorage - голосовать можно бесконечно, так что без авторизации по-любому это несерьезно. Поэтому и предусмотрел текстовый файл, чтобы в случае неадекватных накруток или по желанию Клиента быстро по FTP ручками править голоса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 18:10 |
|
||
|
Простая голосовалка на странице
|
|||
|---|---|---|---|
|
#18+
asws, вам-то хорошо (с)... А вот мой любимый хостер с первого декабря заменил ftp на sftp - и теперь туда только на Файлзилле заехать можно (sftp, видимо, кривоватый там, ни один другой клиент пока не подключается). И поэтому, ceterum censeo, мне проще править БД (своим MySQL mini editor'ом). С другой стороны, и задачи у наших голосований, видимо, разные. Я не против накруток :-). Голосование на большинстве сайтов моих клиентов - самоцель, чисто чтобы у посетителей глаза разбегались по разным функциям, и они подольше сидели на сайте. Нам не нужно знать всю страшную правду о ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 18:35 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=147&tid=1448975]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 428ms |

| 0 / 0 |
