Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вывод значения функции через равный интервал (https://javascript.ru/forum/misc/34339-vyvod-znacheniya-funkcii-cherez-ravnyjj-interval.html)

Deff 30.12.2012 04:12

Cтандартно для чатов - скрипт делает Аякс запросы не чаще 10-12 сек, дабы избежать лишней нагрузки

Поскольку сама обработка файла браузером может занимать больше секунды
К примеру страница грузицо в среднем секунд 20-30, смысла делать смену цифр существенно быстрее вроде нет

cOAPerator 30.12.2012 06:42

снова не РАБОТАЕТ!
number=data.split("|").length-1; - делает новый массив и считает количество элементов массива, НО
так как у меня файл такого вида:

2uc6oc0g2g2alv6cotbb8k1c85|1356819742
fp6onv96hjv3fsu1jvernm4544|1356819747
t9fee2k4m43qr1e8c3tl71la30|1356819750
tj6m9qijcjp9emq3n5f4vfu7o7|1356819756

и считать надо только то что выделено жирным, то получатся не верный ответ.
и 2 проблема - все время выводит 0.

сейчас код такой:
setInterval(function() {
//Тут Аякс запрос
request = new XMLHttpRequest();
request.open("GET", "user_session.txt", true);
request.send(null);
	//Пусть response - Данные из файла
var response = request.responseText;
	number=response.split("|").length;
var msgelement = document.getElementById("userOnline");
	msgelement.innerHTML=number;
//Конец  Аякс запроса
}, 1000);

Deff 30.12.2012 12:19

<div id="userOnline"></div>

<script type="text/javascript">
//Ссылка на подгружаемый файл
var  Link='http://cOAPerator.ru/user_session.txt';

var number = 6;
var msgelement = document.getElementById('userOnline');
msgelement.innerHTML=number;

setInterval(function() {

function getXmlHttp(){var xmlhttp;try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(E){xmlhttp=false}}if(!xmlhttp&&typeof XMLHttpRequest!='undefined'){xmlhttp=new XMLHttpRequest()}return xmlhttp}
var xmlhttp=getXmlHttp();xmlhttp.open('GET',Link+'?'+Math.random(),true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){if(xmlhttp.status==200){

     number=xmlhttp.responseText.split("|").length-1;
     msgelement.innerHTML=number
     
}}};xmlhttp.send(null);

}, 1000);
</script>

cOAPerator 30.12.2012 19:50

Deff,
number=xmlhttp.responseText.split("|").length-1; -эта строка не правильно считает
и все время висит число 6 и не меняется.

Deff 31.12.2012 00:17

Цитата:

Сообщение от cOAPerator
number=xmlhttp.responseText.split("|").length-1; -эта строка не правильно считает

может неверный линк ?
var Link='http://cOAPerator.ru/user_session.txt'
====================
поставьте вместо
number=xmlhttp.responseText.split("|").length-1;
msgelement.innerHTML=number

Это
alert(xmlhttp.responseText)
и посмотрите - меняется ли файл

dmitriymar 31.12.2012 00:32

Цитата:

Сообщение от Deff
alert(xmlhttp.responseText)
и посмотрите - меняется ли файл

и не будет. гет запросы кешируются. либо пусть заголовки правильные отдаёт -с запретом кеширования . либо в запрос соль пусть добавляет

Deff 31.12.2012 00:34

Цитата:

Сообщение от dmitriymar
либо в запрос соль пусть добавляет

ну вродь есть
Цитата:

Сообщение от Deff
xmlhttp.open('GET',Link+'?'+Math.random()


dmitriymar 31.12.2012 00:41

действительно. не заметил.

cOAPerator 31.12.2012 02:04

ребят объясните мне о чем вы ща разговариваете? ))) ппц я нуб))
Deff, так как посчитать то? чего то я никак не пойму..
из за того что в конце каждой строки нет этого долбаного разделителя |
не считается правильно..
dmitriymar, содержание файла принимается нормально.

cOAPerator 31.12.2012 02:19

Deff, пардон, походу я скосячил немного. попробовал алерт поставить так он ниче не выдает. пустое окно алерта.
то бишь данные не приходят.
а ссылка обязательно должна быть полная - http://cOAPerator.ru/user_session.txt
или можно относительную поставить - /user_session.txt
???

с относительной ниче так же не выдает..

но вот что интересно, когда стоит
number=xmlhttp.responseText.split("|").length-1;
msgelement.innerHTML=number

то показывает 1 юзер..


Часовой пояс GMT +3, время: 17:31.