2012-03-01 2 views
1

У меня есть вебы-страница с небольшим иллюстрированным облаком и внутри есть небольшое сообщение которое появляется случайным образом из таблицы MYSQL, содержащей 30 сообщенийPHP случайного сообщение увядает к следующим случайным сообщениям в течение 20 секунд

Он отлично работает

код:

$select = mysql_query("SELECT * FROM `cloudbig` ORDER BY RAND() LIMIT 1"); 

Если страница обновляется другое сообщение появляется

Мой клиент want's чтобы ... если пользователь находится на этой странице, облако, чтобы изменить к другому случайного сообщения каждый 20 секунд и с гладкой эффект замирания

Любая идея, как я бы сценарий - не правда ли просто что-то вроде " + 20 секунд GET NEXT запись ORDER BY RAND() "... и некоторый сценарий javascript для увядания?

+2

Это не имеет ничего общего с PHP и MySQL. Это вопрос JavaScript. – Brad

ответ

2

Вы можете получить кучу сообщений из базы данных, отбросить их в массив Javascript и написать/найти javascript, который циклически их имитирует (вы можете использовать jQuery для затухания). Это подход типа «кеш».

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

1

Существует по крайней мере три различных способа приблизиться к этому.

Один из них - это список всех сообщений, в которых вы хотите, чтобы они были доступны, и только один из них видимый. В JavaScript вы можете циклически перебирать их с тайм-аутом.

Другая возможность - показать только одно сообщение, а затем получить следующее сообщение через AJAX после таймаута.

Гибрид двух будет состоять в том, чтобы сначала не показывать какие-либо сообщения, но затем вы можете получить все сообщения через AJAX после того, как документ завершит загрузку и загрузит их в клиентскую часть массива. Затем вы можете просто прокручивать их, используя тайм-аут. Это было бы моим предпочтительным способом, но это зависит от вас.

Смежные вопросы