Ajax, jQuery

livelink
На сайте с 30.04.2006
Offline
117
563

приветствую!

Подскажите пожалуйста, как сделать чтобы сообщения сами обновлялись? Т.е. есть некая лента сообщений, люди туда твои "твиты" постят.. и чтобы увидеть свежий твит - нужно обновить страницу.. как сделать как на фейсбуке например?

вот урл, чтобы понятнее было: http://privetka.ru/moskva.html (это не реклама!)

Знакомства БЕЗ регистрации - http://www.privetka.ru (http://www.privetka.ru), КРЕАТИВНАЯ РЕКЛАМА - http://advertisio.ru (http://advertisio.ru), Каталог автозапчастей - http://aubb.ru (http://aubb.ru)
ДП
На сайте с 23.11.2009
Offline
203
#1

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

Вам пример кода надо или что?

livelink
На сайте с 30.04.2006
Offline
117
#2

пример конечно ;) я в аяксе совсем дурак ;))

желательно пример в контексте моей проблемы ;)

ДП
На сайте с 23.11.2009
Offline
203
#3

в общем виде как-то так


$.post(
'update.php',
{ lastupdate:lastupdate},
function(data){
lastupdate = data.lastupdate;
$('.mainbox').prepend(data.content);
},
"json")

update.php должен отдавать json-структуру

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

content - html с кодом новых сообщений

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

livelink
На сайте с 30.04.2006
Offline
117
#4

пипец ;) до нового года явно не успею ;))))) спасибо! попробую изучить теперь json..

livelink добавил 24.12.2010 в 13:04

а вы бы не могли за какую-нибудь денежку это написать?

ДП
На сайте с 23.11.2009
Offline
203
#5

Я думаю там непростая система в целом и быстро и хорошо данную задачу решить вряд ли выйдет, поэтому откажусь.

В качестве совета: для получения данных в формате json в php я использую метод из класса JsHttpRequest::php2js. Правда в виде отдельной функции.

Библиотеку тут скачать можно - http://www.dklab.ru/lib/JsHttpRequest/demo.zip , там в файле JsHttpRequest найдете код этого метода.

ParserYa
На сайте с 04.10.2010
Offline
29
#6

Там не сложно - попробуйте разобраться сами. Необходим всего лишь модуль jQuery.js


$.ajax({
url:ajax.php, //куда шлем
type:'POST',
data:'mode=update', //параметры запроса
dataType:"html",
success: function(data, textStatus) {
//что делать если пришел успешный ответ
//сам ответ приходит в data
}
});


if (($_POST['mode']) && ($_POST['mode']=='update') {
//собираете нужные данные в переменную, например $result в любом формате, которое бы Вам
//удобно обрабатывать. Привязка к json совершенно не обязательна.
echo $result; //важно, что здесь именно вывод на экран, а не return как у функций.
}
SI
На сайте с 03.12.2007
Offline
130
#7
-= Онлайн сервисы =-

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий