[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Архив » Архив » Онлайн статистика для форума
Онлайн статистика для форума
RuDДата: Суббота, 28.06.14, 22:45:44 | Сообщение # 1
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Учу скрипты, но на данный момент 0 в них.
Помогите пожалуйста сделать авто обновление, онлайн появляется только после нажатия кнопки, кнопка это обновить, но кнопку оставьте, заранее благодарен.
скрипт от Apo

в самый вверх в персональной странице:
Код
<span style="display:none;"><span id="tester1">$ONLINE_USERS_LIST$</span></span>


на форуме в блок или куда удобно:
Код
<a href="javascript://" onclick="javascript:reloadU();"><img src="/refresh.png" title="Обновить статистику" width="10px"></a> <span id="onlineU"><?if($ONLINE_USERS_LIST$)?>$ONLINE_USERS_LIST$<?else?><span title="Нажмите значок обновления">[Обновить]</span><?endif?></span>

<script>
// Скрипт by Apocalypse
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
// apo-ucoz.com
</script>
 
DefmanДата: Суббота, 28.06.14, 22:57:08 | Сообщение # 2
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Код
<script>
// Скрипт by Apocalypse
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
// apo-ucoz.com
</script>


на

Код
<script>
// Скрипт by Apocalypse
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
// apo-ucoz.com
$(document).ready(function() {
setInterval(reloadU,30000); //30000 - 30s. 1s = 1000
}
</script>

Должно работать


Сообщение отредактировал Defman - Суббота, 28.06.14, 22:57:59
 
RuDДата: Суббота, 28.06.14, 23:04:39 | Сообщение # 3
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Defman,
Цитата Defman
Должно работать

к сожалению не работает, кнопка даже перестала обновлять
 
DefmanДата: Суббота, 28.06.14, 23:06:03 | Сообщение # 4
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Код
<script>
// Скрипт by Apocalypse
// apo-ucoz.com
$(document).ready(function() {
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
setInterval(reloadU,30000); //30000 - 30s. 1s = 1000
}
</script>

Это попробуй.
 
RuDДата: Суббота, 28.06.14, 23:13:22 | Сообщение # 5
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Цитата Defman
Это попробуй.

Тоже самое
 
DefmanДата: Суббота, 28.06.14, 23:15:36 | Сообщение # 6
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Точно не работает? 30 секунд ждал? Снизь попробуй до 5 секунд (5000). Консоль браузера что-нибудь выводит? Попробуй setInterval("reloadU",30000);
На крайний случай:
Код
setInterval(function () { reloadU(); },30000);

или
Код

setInterval("
$('span#onlineU').html('<span id=\"uli\"><img src=\"/ajax-loader.gif\" width=\"100px\"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}", 30000);


Сообщение отредактировал Defman - Суббота, 28.06.14, 23:18:56
 
RuDДата: Суббота, 28.06.14, 23:20:31 | Сообщение # 7
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Цитата Defman
Попробуй setInterval("reloadU",30000);

не помогло.. кнопка на обновление даже не функционирует сразу
 
RuDДата: Суббота, 28.06.14, 23:21:34 | Сообщение # 8
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Defman, а html нормально построен?

Сообщение отредактировал RuD - Суббота, 28.06.14, 23:21:58
 
DefmanДата: Суббота, 28.06.14, 23:22:40 | Сообщение # 9
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Попробуй еще
Код
<a href="javascript://" onclick="javascript:reloadU();">

на
Код
<a href="#" onclick="reloadU();">

Или
Код
<a href="javascript:reloadU()">


Сообщение отредактировал Defman - Суббота, 28.06.14, 23:23:05
 
DefmanДата: Суббота, 28.06.14, 23:25:27 | Сообщение # 10
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Рекомендую еще как-то проводить отладку кода.
Например через console.log выводить что-то в консоль в функции reloadU.
Прим.
Код

function reloadU() {
console.log("reloadU works");
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
setInterval(reloadU,30000); //30000 - 30s. 1s = 1000
}

При нажатии на кнопку/вызове reloadU в консоль выведет "reloadU works".
 
ApocalypseДата: Суббота, 28.06.14, 23:38:07 | Сообщение # 11
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
RuD,
Код
setInterval(function() {
reloadU();
}, 30000);
 
DefmanДата: Суббота, 28.06.14, 23:42:21 | Сообщение # 12
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Apocalypse, я уже предлагал))
Кстати, а почему setInterval(reloadU, 30000) не хочет срабатывать? Не знаешь?)


Сообщение отредактировал Defman - Суббота, 28.06.14, 23:42:32
 
ApocalypseДата: Суббота, 28.06.14, 23:47:51 | Сообщение # 13
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
Defman, потому что ты в ковычки не взял. Тут либо "reloadU", либо "reloadU()"
 
DefmanДата: Суббота, 28.06.14, 23:51:27 | Сообщение # 14
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Кавычки не обязательны.
https://developer.mozilla.org/en-US/docs/Web/API/Window.setInterval
http://javascript.ru/setInterval
Проверил в консоли FF - работает без кавычек (объявил функцию myfunc() { alert(1); } и setInterval(myfunc, 1000); Выводит "1" в окошке каждую секунду)


Сообщение отредактировал Defman - Суббота, 28.06.14, 23:53:45
 
ApocalypseДата: Суббота, 28.06.14, 23:55:56 | Сообщение # 15
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
Defman, ну да, точно. У тебя там в твоём варианте не закрыта скобка ) после события $(document).ready(function() {
 
RuDДата: Суббота, 28.06.14, 23:58:15 | Сообщение # 16
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Apocalypse, вот теперь работает, только не совсем так как хотел, он начинает обновлять после нажатия на кнопку, а можно сделать что бы всегда показывало с обновлением, но только что бы кнопку можно было тоже нажимать для обновления?
 
DefmanДата: Суббота, 28.06.14, 23:58:24 | Сообщение # 17
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Ой, действительно)
Вот так вот - привыкнуть к проверке синтаксиса редактором :D
 
DefmanДата: Суббота, 28.06.14, 23:59:59 | Сообщение # 18
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
RuD, странно.
Вот правильный код, который ДОЛЖЕН работать.
Код
$(document).ready(function() {
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
setInterval(reloadU,30000); //30000 - 30s. 1s = 1000
});

Интервал запускается сразу после полной загрузки страницы.
 
ApocalypseДата: Воскресенье, 29.06.14, 00:00:27 | Сообщение # 19
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
RuD, хочешь, чтобы индикатор не появлялся?
 
ApocalypseДата: Воскресенье, 29.06.14, 00:01:25 | Сообщение # 20
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
Defman, нельзя брать функцию в $(document).ready(function() {
 
DefmanДата: Воскресенье, 29.06.14, 00:02:18 | Сообщение # 21
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Apocalypse, неожиданно. Всегда брал их в скобки и все работало.
 
RuDДата: Воскресенье, 29.06.14, 00:03:21 | Сообщение # 22
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Apocalypse, хочу что бы когда страницу обновляешь сразу показывало онлайн с автообновлением, а рядом кнопка была которая обновляет при нажатие, вот)

Сообщение отредактировал RuD - Воскресенье, 29.06.14, 00:08:54
 
DefmanДата: Воскресенье, 29.06.14, 00:10:03 | Сообщение # 23
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
setInterval запускается сразу и потом через указанное время.
Код
function reloadU() {
$('span#onlineU').html('<span id="uli"><img src="/ajax-loader.gif" width="100px"></span>');
$('span#uli').load('/index/8<?ifnot($USER_LOGGED_IN$)?>-1<?endif?> #tester1');
}
$(function() {
setInterval(reloadU,30000); //30000 - 30s. 1s = 1000
});

Может так? Если в ready нельзя пихать функции...
PS: $(function() { - сокращение $(document).ready(function() { (пруф - http://learn.jquery.com/using-jquery-core/document-ready/).
 
RuDДата: Воскресенье, 29.06.14, 00:49:44 | Сообщение # 24
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
спасибо, наверно оставлю так
 
Форум » Архив » Архив » Онлайн статистика для форума
  • Страница 1 из 1
  • 1
Поиск: