JQuery PHP Топ 10 анимированных - PullRequest
0 голосов
/ 29 октября 2010

Мне интересно, можно ли этого достичь.

Я знаю, как получить топ-10 из моей базы данных, используя SQL.Но я бы хотел сделать еще один шаг вперед.

Моя идея - обновлять DIV каждые пару секунд.Сначала скрипт проверит, есть ли какие-либо обновления в базе данных, если так, то DIV должен быть обновлен.Я могу сделать это самостоятельно, но мой вопрос: могу ли я анимировать это с помощью jQuery?

Пример: [код] Топ 10 знает, что это 1. Продукт 1 Просмотров: 49 2. Продукт 2 Просмотров: 48 3Просмотры продукта 3: 34 и т. Д.

Топ 10 за несколько секунд равен 1. Количество просмотров продукта 2: 52 2. Просмотров продукта 1: 49 3. Просмотров продукта 4: 35 [/ code]

Так что теперь я хотел бы FadeOut продукт 1, переместить продукт 2 вверх, fadeIn продукт 1 на позиции 2 .... то же самое произойдет с остальными топ 10.

Я неЯ не знаю, возможно ли это, поэтому я спрашиваю здесь.

Большое спасибо!

1 Ответ

0 голосов
/ 29 октября 2010

Луна, это, конечно, возможно, но, возможно, не совсем тривиально.Это очень похоже на проблему, с которой я столкнулся в своей CMS при выполнении функции продвижения / понижения для статей.В этом случае, если пользователь выбрал понизить элемент, скажем, с № 4 до № 5, первым шагом было получить значение и выполнить изменение через Ajax.Вторая часть состояла в том, чтобы определить id значения ниже и продвинуть его снова через Ajax.Хитрость заключалась в том, чтобы определить их на лету через Ajax, чтобы минимизировать попадания в базу данных.

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

Итак, с практической точки зрения, я бы начал с запроса, который вернул массив.При обновлении вы можете вернуть аналогичный массив с обновленными данными.Используя функции массива, вы можете сравнить положение с первым набором данных, по убыванию с элементов 1-X (в цикле foreach). Если элемент был отброшен, вы переходите в соответствующий элемент div.Если предмет перемещается вверх, вы назначаете его на более высокий div.Хороший визуальный эффект может состоять в том, чтобы сначала перейти от цвета фона к темному (или серому), а затем сделать медленное затухание для эффекта.Поскольку в элементе div может находиться только один элемент за раз, новый элемент по существу «ударит» следующий элемент, поэтому важно убедиться, что каждый элемент переназначен, чтобы он не просто исчезал.

Я бы беспокоился о том, чтобы делать это каждые несколько секунд ... это много попаданий в БД, и Javascript будет довольно сильно давить на браузер клиента.Может быть, каждые 10-15 секунд будет более уместным.

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