12.04.2012 18:33:40
Автообновление счётчика "online".
Не так давно по Т.З. нужно было сделать онлайн обновление счётчика на стартовой, дабы показывал актуальную информацию.
Я нашёл вот такое решение:
Начал с расстановок целей.
Цели:
Способ определения количества чатлан на уровне парсера августа, тут всё просто - /c страница сайта.
Использование php не возможно по этому решение должно быть написано на JS. Первая идея была парсить эту страницу средствами php (на моём сервере) а затем возвращать значения на страницу ajax'ом. От идеи отказался.
Решение:
Для удобства работы с блоками использую jquery
Для установления интервалов обновления функцию setInterval
код функции file_get_contents_online:
Я нашёл вот такое решение:
Начал с расстановок целей.
Цели:
Способ определения количества чатлан на уровне парсера августа, тут всё просто - /c страница сайта.
Использование php не возможно по этому решение должно быть написано на JS. Первая идея была парсить эту страницу средствами php (на моём сервере) а затем возвращать значения на страницу ajax'ом. От идеи отказался.
Решение:
Для удобства работы с блоками использую jquery
<script src=.../js/jquery-1.7.2.min.js type=text/javascript></script>
Для установления интервалов обновления функцию setInterval
setInterval('file_get_contents_online("../c")', 1000);
код функции file_get_contents_online:
function file_get_contents_online( url ) {
var req = null;
try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
try { req = new XMLHttpRequest(); } catch(e) {}
}
}
if (req == null) throw new Error('XMLHttpRequest not supported');
req.open("GET", url, false);
req.send(null);
var temp=req.responseText;
tempm=temp.split('(');
tempm=tempm[1].split(')');
temp=tempm[0];
if (temp<10){temp="00"+temp;}else if(temp<100){temp="0"+temp;}// так же была потребность отображать количество человек онлайн в трёхзначном формате.
$('#count').empty();
$('#count').append(temp);
}
Такая вот архибесполезная и забавная феничка. :)var req = null;
try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
try { req = new XMLHttpRequest(); } catch(e) {}
}
}
if (req == null) throw new Error('XMLHttpRequest not supported');
req.open("GET", url, false);
req.send(null);
var temp=req.responseText;
tempm=temp.split('(');
tempm=tempm[1].split(')');
temp=tempm[0];
if (temp<10){temp="00"+temp;}else if(temp<100){temp="0"+temp;}// так же была потребность отображать количество человек онлайн в трёхзначном формате.
$('#count').empty();
$('#count').append(temp);
}