Основной задачей скрипта была подгрузка новых сообщений в теме, в которой в данный момент находится пользователь
Какие мозги прикручены:
1) На какой бы странице темы вы не находились - скрипт всегда будет проверять именно последнюю страницу
2) Скрипт понимает, когда сообщение оставляете именно вы
3) Даже если один пользователь оставил два разных сообщения или отредактировал старое - скрипт это поймёт и уведомит вас
4) Даже если два разных пользователя напишут два одинаковых сообщения - скрипт и это поймёт
5) Если новое сообщение оставлено на новой странице, даже в этом случае скрипт подгрузит именно сообщение с новой страницы и запомнит, что это уже новая страница
6) После подгрузки новых сообщений скрипт сам прокрутит страницу до самого низа
7) Скрипт использует минимум гет запросов - 1 при заходе на страницу и 1 каждые 25 секунд для проверки всех параметров. Третий гет запрос выполняется очень редко, в случаях, если новое сообщение оставлено на новой странице
Установка: В Общем виде страниц форума после $BODY$:
Code
<img src="http://new-info.ucoz.net/imghost/apo/universalnaja_umnaja_avtomaticheskaja_podgruzka_no.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>
// Умная подгрузка постов by Apocalypse
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);
//apo-ucoz.com (c) 2012
</script>
<?endif?>