Онлайн статистика для форума
|
|
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
| спасибо, наверно оставлю так
|
|
| |