- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Начал изучать ajax. Необходимо реализовать такую задачу - первый XMLHttpRequest объект читает данные из файла со строками. Полученные данные разбиваются в массив по разделителю (<br>). Это нормально получается. Дальше нужно элементы получившегося массива последовательно скормить через ajax другому php скрипту для обработки. Тогда встает проблема использования XMLHttpRequest во второй, третий... и т.д. разы просто с другими параметрами. Почему-то обрабатывается только последний элемент массива, видимо это связано с тем xhr1.readyState еще не равно 4, а уже происходит очередной вызов. Как реализуется такие множественные запросы через один XMLHttpRequest?
Вот, собственно, код:
а зачем через один вообще?) создавать каждый раз новый объект и все
а зачем через один вообще?) создавать каждый раз новый объект и все
т.е. не дожидаться пока предыдущий отработает? где-то я читал, что вроде есть ограничение на количество одновременно открытых соединений с сервером, вроде даже всего 2 возможно. В идеале задача такая - запрос прошел, отработал, вывели результат, сделали следующий запрос, отработал, вывели результат и т.д.
т.е. не дожидаться пока предыдущий отработает? где-то я читал, что вроде есть ограничение на количество одновременно открытых соединений с сервером, вроде даже всего 2 возможно.
почему не дожидаясь то сразу :)
дожидаясь конечно
почему не дожидаясь то сразу :)
дожидаясь конечно
Так а новый объект и запрос где создавать? В xhr1.onreadystatechange что ли? Потом следующий тоже надо будет дождаться - типа рекурсии что-то получается.
savage, ну да, можно там :)
нет, рекурсия не получится, запросы то асинхронные
savage, ну да, можно там :)
нет, рекурсия не получится, запросы то асинхронные
Старые объекты при этом нужно как-то закрывать, уничтожать?
Старые объекты при этом нужно как-то закрывать, уничтожать?
если их не тысячи, думаю что нет)
Переписал код, все равно не работает так как нужно. Как в данном случае передать массив в функцию? В си++ были указатели.
savage добавил 24.01.2010 в 21:17
УРА, получилось!
Вот конечный код, может кому-нить понадобится:
<script language="JavaScript" type="text/javascript">
var xhr, xhr1, alls, turl;
var xhrm=new Array();
var mystr=new Array();
alls="";
if (document.XMLHttpRequest)
{
xhr=new XMLHttpRequest();
}
else
{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
function callserver(mystr,i)
{
alert(i);
alert(mystr);
if (document.XMLHttpRequest)
{
xhrm=new XMLHttpRequest();
}
else
{
xhrm=new ActiveXObject("Microsoft.XMLHTTP");
}
turl='test.php?is_buy=on&str='+encodeURIComponent(mystr);
//alert(turl);
xhrm.open('GET',turl, true);
xhrm.send('');
xhrm.onreadystatechange=function ()
{
if (xhrm.readyState==4)
{
if (xhrm.status == 200)
{
alls=alls.concat(xhrm.responseText);
document.getElementById('contx').innerHTML=alls;
if (i<5) i++;
callserver(mystr,i);
}
}
}
}
xhr.open('GET','readfile.php', true);
xhr.onreadystatechange=function ()
{
if (xhr.readyState==4)
{
if (xhr.status == 200)
{
var mall=xhr.responseText;
var splitExp=/<br>/;
mystr=mall.split(splitExp);
for(i=0;i<mystr.length;i++)
{
document.getElementById('contx').innerHTML+=mystr+"<br>";
}
i=0;
callserver(mystr,i);
}
}
}
xhr.send('');
</script>
Массивы в javascript в функцию передаются как ссылки автоматически.
savage добавил 24.01.2010 в 21:20
Переписал код, все равно не работает так как нужно. Как в данном случае передать массив в функцию? В си++ были указатели.
savage добавил 24.01.2010 в 21:17
УРА, получилось!
Вот конечный код, может кому-нить понадобится:
Массивы в javascript в функцию передаются как ссылки автоматически.
(javascript передача массива в функцию - для гугла, если кто будет искать :)