Показать сообщение отдельно
  #1 (permalink)  
Старый 31.03.2016, 16:31
Новичок на форуме
Отправить личное сообщение для Viger94 Посмотреть профиль Найти все сообщения от Viger94
 
Регистрация: 31.03.2016
Сообщений: 8

xmlhttp утечка памяти: net::err_insufficient_resources
Не давно начал программировать на JS . Взял готовый скрипт и потихоньку переделываю под себя. Коменты автора не удалял. Вообщем есть сервер Icecast 2 - с него берутся данные при помощи файла get.php
<?php
readfile('http://creepyradio.ru:8000/status2.xsl');
?>


Потом этот файл запрашивает parser.js
// Функция для упрощения написания, задаёт содержимое элементу DOM. Лень - двигатель прогресса!
function set (id, dat)
{
	var d = $("."+ id);
	d.innerHTML = dat;
}


function getXmlHttp() // получаем объект XMLHttpRequest, код взят из многочисленных примеров
{
  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;
}


function req () // запрос данных
{
	var xmlhttp = getXmlHttp()
	xmlhttp.open("GET", "/get.php", true); // просим данные у сервера в асинхронном режиме
	xmlhttp.onreadystatechange = function() 
		{
		  if (xmlhttp.readyState == 4) {
			 if(xmlhttp.status == 200)
			   processResult(xmlhttp.responseText); // отдаём на обработку
		}
	};
	xmlhttp.send(null);
}


function processResult (res) // обработка входящих данных
{
	var csRes = eval("(" + res + ")"); // да-да, тут должен использоваться jQuery, ибо безопасность и так далее. Но, так как это просто скрипт с примером, не буду ударяться в подробности.
	var a = []; // пустой массив, для дальнейших действий
rjname = null

		a = csRes["/stream_128"]; // если да, работаем с данными от него

	
		var titlemas = a["title"];
	trackname = titlemas.split('|');
	rjname = trackname[1];
	track = trackname[0];
	$(".trackholder").text( track ); // Отображаем текущий трек
	
	

        // Задаём все нужные нам поля (жанр, кол-во слушателей, описание станции и т.д.)
	$(".sName").text(a["name"]);
	$(".sDescr").text( rjname );

	
	setInterval("req()", 15000);  // Если всё прошло удачно, через 15 секунд обновим информацию о станции
// Здесь вместо setInterval используем setTimeout, чтобы при неработающем icecast скрипт не просил данные впустую.
}

req(); // первый запрос


Вот тут два вопроса :
1) Если DJ переподключается бесконечно сыпится ошибка, лечится перезагрузкой страницы: net::err_insufficient_resources с жалобой на 39 строчку ( xmlhttp.send(null); ). В чем беда? Наличие ошибки до моих исправлений не проверял.
2) В строчке 45 ( var csRes = eval("(" + res + ")"); ) советуют вставить jquery, но ввиду скудности знаний не пойму что тут надо вставить.

Заранее спасибо за ответы )))
Ответить с цитированием