• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Умная подгрузка новых сообщений форума
Умная подгрузка новых сообщений форума
wоrkman
Сообщений: 710
Репутация: 84

Сообщение # 1 | 17:30:42
Основная задача данного скрипта, это подгрузка новых сообщений в теме, в которой в данный момент находится пользователь.

Какие мозги прикручены:
1) На какой бы странице темы вы не находились — скрипт всегда будет проверять именно последнюю страницу
2) Скрипт понимает, когда сообщение оставляете именно вы
3) Даже если один пользователь оставил два разных сообщения или отредактировал старое — скрипт это поймёт и уведомит вас
4) Даже если два разных пользователя напишут два одинаковых сообщения — скрипт и это поймёт
5) Если новое сообщение оставлено на новой странице, даже в этом случае скрипт подгрузит именно сообщение с новой страницы и запомнит, что это уже новая страница
6) После подгрузки новых сообщений скрипт сам прокрутит страницу до самого низа
7) Скрипт использует минимум гет запросов — 1 при заходе на страницу и 1 каждые 25 секунд для проверки всех параметров. Третий гет запрос выполняется очень редко, в случаях, если новое сообщение оставлено на новой странице

Установка:

В Общем виде страниц форума после $BODY$:

loader выглядет так:

также Вы можете составить себе свой тут

Код
<img src="http://proaqua31.ru/images/ajax-loader.gif" id="apoL" style="position:fixed;z-index:100;top:50%;margin-top:-10px;left:50%;margin-left:-80px;opacity:0;" />     

<?if($PAGE_ID$='threadpage')?>      
<script>      
var apo1 = window.location.href;      
var apos = $('.numPages:first').text();      
var apos0 = apos.length;      
var apo2 = apo1.length;      
var apo3 = apo1.substr(0, apo2-apos0);      
var apous; // Глобальная переменная пользователя, последнего оставившего сообщение      
var apotxt; // Глобальная переменная текста последнего сообщения      
$.get(apo3+apos, function(apo0) {      
apous = $('.postUser:last', apo0).text();      
apotxt = $('.posttdMessage:last', apo0).text();      
};);      
setInterval(function() {      
$.get(apo3+apos, function(apo) {      
var aposwitch = $('.switchDigit:last', apo).attr('href');      
var apous2 = $('.postUser:last', apo).text();      
var apotxt2 = $('.posttdMessage:last', apo).text();      
if(apous2!='$USERNAME$' && apotxt!=apotxt2 || apous2!='$USERNAME$' && apous!=apous2) {      
$('#apoL').stop().fadeTo(500, 1);      
$('.gTable').stop().fadeTo(500, 0.3);      
apous=$('.postUser:last', apo).text();      
apotxt=$('.posttdMessage:last', apo).text();      
apos = $('.numPages:first', apo).text();      
if(apos!=$('.numPages:first', apo).text()) {      
$('.gTable').load(aposwitch+' .gTable', function() {      
$('#apoL').stop().fadeTo(500, 0);      
$('.gTable').stop().fadeTo(500, 1);      
$('body').animate({scrollTop: 15000}, 500);      
_uWnd.alert('Подгружено со страницы '+$('.numPages:first', apo).text()+' от <b>'+apous2+'</b>', '', {w:200, h:60};);      
};);      
} else {      
$('.gTable:first').html($('.gTable:first', apo));      
setTimeout(function() {      
$('#apoL').stop().fadeTo(500, 0);      
$('.gTable').stop().fadeTo(500, 1);      
$('body').animate({scrollTop: 15000}, 500);      
}, 1000);      
_uWnd.alert('Подгружено со страницы '+apos+' от <b>'+apous2+'</b>', '', {w:200, h:60};);      
};      
};      
};);      
}, 25000);      
</script>      
<?endif?>


Также можно данный скрипт закачать в файловый менеджер и установить по месту, как:
Код
<?if($PAGE_ID$='threadpage')?> <script type="text/javascript"src="путь к вашему файлу - js"></script><?endif?>
Прикрепления: 7509054.gif (3.1 Kb)

Знать много о HTML, CSS, Javascript. - Опасно для мозга. Можно стать умным.
-=НЕ НАЖИМАТЬ=-
Сообщение отредактировал rem-31 - Вторник, 04 Фев 2014, 17:53:17
Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 2 | 17:39:34
класс
откуда эти скрипты?
думаю есть о чем подумать Администрации Юкоза ;-P


WWW.DOGICA.COM / WWW.DOGICA.ORG
wоrkman
Сообщений: 710
Репутация: 84

Сообщение # 3 | 17:54:51
Цитата GEMMY ()
думаю есть о чем подумать Администрации Юкоза

В каком смысле?

Знать много о HTML, CSS, Javascript. - Опасно для мозга. Можно стать умным.
-=НЕ НАЖИМАТЬ=-
zarim
Сообщений: 489
Репутация: 82
Уровень замечаний:

Сообщение # 4 | 19:52:41
wоrkman, хотел прикрутить к себе на форум - отказывается работать (код ставил после ВОДИ, целиком), можно мне пинок в нужном направлении?
$Tiny$
Сообщений: 193
Репутация: 62

Сообщение # 5 | 18:38:16
zarim, потому что сообщение было отредактировано и при редактировании
Цитата wоrkman ()
});
Заменилось на:
Цитата wоrkman ()
};);
Что сделало код неверным.
Сообщение отредактировал $Tiny$ - Пятница, 06 Мар 2015, 18:39:56
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Умная подгрузка новых сообщений форума
  • Страница 1 из 1
  • 1
Поиск: