Я думал о том, как создать опрос, который позволит пользователям отправлять новые записи и голосовать за существующие. Затем опрос будет периодически обновляться, добавляя любые новые записи (которые могут добавлять другие пользователи), обновляя голоса для каждой записи, а затем прибегая ко всем записям путем уменьшения голосов - все через ajax.
Некоторые области, в которых я обращаюсь за советом в этой реализации:
- Я имею в виду использование типа данных XML вместо JSON, поскольку это позволяет лучше представлять структурированные данные (хотя большая передача данных ведет к более высокой стоимости полосы пропускания)
- Если серверный скрипт вернет все данные этого опроса, и пусть клиентский скрипт (я смотрю на плагин jQuery PeriodicUpdater script atm) определит, есть ли изменение в данных, или я должен запрограммировать сервер скрипт для возврата только новых записей? Если серверный скрипт возвращает только новые записи, я думаю, мне нужно будет добавить временную метку к каждому вызову ajax, но я не уверен, что скрипт PeriodicUpdater позволяет это делать. Во-вторых, это означало бы, что я не смогу получить самый обновленный подсчет голосов для существующих записей.
Если каждый опрос ajax возвращает полный набор данных, я думаю, что я бы проанализировал каждую запись и проверил, существует ли она (используя .length () для элемента dom), если она существует, я проверю, подсчет голосов такой же, остальное, обновление. Если запись не существует, я добавлю ее в начало списка (хотя это не должно иметь значения, поскольку она будет отсортирована после этого обновления). Наконец, я отправлю запрос на обновление таблиц.
Я не уверен, является ли вышеизложенное слишком ресурсоемким, или это случай плохого программирования / методологии. Есть ли другой способ, которым я должен сделать это?
Я хочу использовать ajax, поскольку это будет означать, что пользователь будет меньше прерываться (в отличие от обновления страницы), опыт будет более плавным, и весь процесс опроса будет вполне "живым". Однако я не уверен, что реализация, о которой я упоминал ранее, что визуальное нарушение при каждом обновлении будет почти сродни обновлению страницы. Какие-нибудь мысли? В идеале было бы неплохо иметь анимацию для перемещения существующих записей вверх / вниз и т. Д. Но я не имею ни малейшего понятия, как это сделать. Ха-ха.
В настоящее время я подумываю об использовании плагинов jQuery PeriodicUpdater и таблиц с моими данными, созданными из 2 столбцов (голосов и записей). Существуют ли другие плагины (опрос ajax-сервера и сортировка данных), которые могут сделать это лучше?
Любой совет очень ценится. Искреннее спасибо :)
-Lyon