Как отправлять HTTP-запросы, не открывая окна в Javascript? - PullRequest
2 голосов
/ 07 декабря 2010

Сейчас я пытаюсь открыть серию URL с window.open

for(i=0;i<10;i++)
{
    window.open("myapp://arg1/arg2/arg3/number_"+i);
}

Работает нормально, за исключением появления десяти окон. И мне интересно, есть ли способ выполнить эту работу с не показанными окнами? Помощь будет оценена!

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Если все, что вы хотите сделать, это отправить эти запросы, и вы не заботитесь об их ответе, вы можете создать изображение:

for(i=0;i<10;i++)
{
    new Image().src = "myapp://arg1/arg2/arg3/number_"+i;
}

AFAIR, все браузеры, в которых я пробовал (не проверял IE), загрузили ресурс и не требовали от меня фактического отображения изображения или добавления его в DOM или что-либо еще. Это хорошо для регистрации и предварительной выборки, но не более того.

1 голос
/ 07 декабря 2010

Есть ли способ сделать это без отображения новых окон?

Sure:

for(i=0;i<10;i++)
{
    // window.open("myapp://arg1/arg2/arg3/number_"+i);
}

Если серьезно, вам нужно объяснить, что именно вы ожидаете - цель window.open - открыть новые (всплывающие) окна, и если это не то, что вам нужно, вам нужна другая функция.

Обновление: Прочитав ваш комментарий, вы увидите, что вам нужно отправить HTTP-запрос на эту страницу (а не открывать эту страницу в новом окне). Обычный способ сделать это - использовать объект XMLHttpRequest для отправки запроса.

Если вы используете инфраструктуру / библиотеку JavaScript (например, jQuery), вы, вероятно, обнаружите, что этот объект заключен в более простые в использовании функции.

1 голос
/ 07 декабря 2010

Нет. Не за что. Вы звоните window.open() 10 раз в цикле.

Вы можете захотеть модальное окно JavaScript.

...