Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / XMLHttpRequest как повторить реквест нескольок раз? / 18 сообщений из 18, страница 1 из 1
10.04.2008, 16:08
    #35248911
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Всем привет. Сразу скажу это не мой профиль но жизнь заставила.
Прошу помочь.
Есть сервер на котором есть сервлет.
Нужно к нему обращаться несколько раз подряд.
Как это сделать?

Вот нарыл в инете как это работает.
Могу обратится один раз вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
//This function for create XMLHttpRequest object
function createRequestObject()
{
   if (window.XMLHttpRequest) 
   {
      try 
      {
           // Mozilla, Safari, ...
           return new XMLHttpRequest();
       } 
       catch (e){}
   } 
   else 
       if (window.ActiveXObject) 
       {
          try 
          {
              //old IE
              return new ActiveXObject('Msxml2.XMLHTTP');
          } 
          catch (e){}
          try 
          {
               //IE
               return new ActiveXObject('Microsoft.XMLHTTP');
          } 
          catch (e){}
       }
    return null;
}
////////////////////////////////////////////////////////
                        
function sender(url)
{
   //[ 1 ]
   var http_request = createRequestObject();
   if(http_request == null)
   {
       alert('');
       return false;
   }
                            
    //[ 2 ]
    http_request.onreadystatechange = function() 
    { 
        alertContents(http_request); 
    };
    http_request.open('POST', url, true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http_request.send('param=getID');
}                            
////////////////////////////////////////////////////////
                        
function alertContents(http_request) 
{
   if (http_request.readyState ==  4 ) 
   {
      if (http_request.status ==  200 )
      {
         alert(http_request.responseText);
      } 
      else 
      {
          alert('');
      }
  }
}


Мне нужно периодически делать реквест на сервер.
Пока сервлет не вернет нужное значение а потом остановится.
Прошу помочь.
...
Рейтинг: 0 / 0
10.04.2008, 16:46
    #35249114
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
а много раз вызвать этот sender() что, IQ не позволяет?:)
...
Рейтинг: 0 / 0
10.04.2008, 16:47
    #35249124
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Всем спасибо я уже нагуглил. Нужно использовать рекурсивный вызов.
Рогастенько конечно я думал можно как в Jave в потоках

Код: plaintext
1.
2.
3.
4.
5.
while(true)
{
   func();
   sleep( 1000 );
}
...
Рейтинг: 0 / 0
10.04.2008, 16:50
    #35249142
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
зыа много раз вызвать этот sender() что, IQ не позволяет?:)

Зачем сразу так грубо.
Яже написал что это не мой профиль JS
Я программист Java и поначалу я сделал так как делал бы в Jave:
Код: plaintext
1.
2.
3.
4.
while(true)
{
   setTimeOut("func()",  1000 ); 
}

Но броузер повис. Погуглив я понял что нужно использовать рекурсивный вызов.
...
Рейтинг: 0 / 0
10.04.2008, 17:15
    #35249232
guru-ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
MikeJuniorВсем спасибо я уже нагуглил. Нужно использовать рекурсивный вызов.
Рогастенько конечно я думал можно как в Jave в потоках

Код: plaintext
1.
2.
3.
4.
5.
while(true)
{
   func();
   sleep( 1000 );
}


ммм... а где тут рекурсия?
...
Рейтинг: 0 / 0
10.04.2008, 19:10
    #35249582
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
guru-ru MikeJuniorВсем спасибо я уже нагуглил. Нужно использовать рекурсивный вызов.
Рогастенько конечно я думал можно как в Jave в потоках

Код: plaintext
1.
2.
3.
4.
5.
while(true)
{
   func();
   sleep( 1000 );
}


ммм... а где тут рекурсия?

а где я написал что это рекурсия?
...
Рейтинг: 0 / 0
10.04.2008, 19:20
    #35249600
guru-ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
MikeJuniorПогуглив я понял что нужно использовать рекурсивный вызов.
...
Рейтинг: 0 / 0
10.04.2008, 19:21
    #35249602
guru-ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Рекурсивный вызов это

Код: plaintext
1.
2.
3.
function F(){
 F();
}


А у Вас наверное все же циклический
...
Рейтинг: 0 / 0
10.04.2008, 19:29
    #35249609
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
guru-ru MikeJuniorПогуглив я понял что нужно использовать рекурсивный вызов.

Я там написал:
автор
Рогастенько конечно я думал можно как в Jave в потоках //здесь должно быть :


Я просто забыл в конце двоеточие и приведенный пример с рекурсией ничего общего не имеет.
Пример с while это то как бы я написал на яве. Но в JS увы.

Всё равно спасибо за заботу.
...
Рейтинг: 0 / 0
10.04.2008, 20:43
    #35249697
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Я не знаю Вашу конкретную реализацию, но рекурсивный вызов использовать не стал бы,
хотя это у Дари так кажется было написано. Причины:
1. Каждый Ваш запрос не обязательно должен закончиться успехом. То есть рекурсия может остановиться.
2. Запросы рекурсивные могут пойти как бы снежным комом один за другим и все равно подвиснет браузер.
3. В памяти могут оставаться все локальные контексты и произойти утечка в ослике.

Для этого лучше используют очереди с setInterval и т.д.

Насчет некрасивых решений в JavaScripte - так это ж кто как пишет. сейчас уже многие склоняются к мнению, что JavaScript по выразительным средствам приближается к лучшим языкам программирования, и ставят его в один ряд с LISP, Perl и Python.
...
Рейтинг: 0 / 0
10.04.2008, 20:54
    #35249709
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
apapacy... и ставят его в один ряд с LISP, Perl и Python.
Да уж. Может тебе на другой форум спрыгнуть?
...
Рейтинг: 0 / 0
10.04.2008, 21:07
    #35249718
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Не планирую пока.
...
Рейтинг: 0 / 0
10.04.2008, 22:30
    #35249798
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
apapacyЯ не знаю Вашу конкретную реализацию, но рекурсивный вызов использовать не стал бы,
хотя это у Дари так кажется было написано. Причины:
1. Каждый Ваш запрос не обязательно должен закончиться успехом. То есть рекурсия может остановиться.
2. Запросы рекурсивные могут пойти как бы снежным комом один за другим и все равно подвиснет браузер.
3. В памяти могут оставаться все локальные контексты и произойти утечка в ослике.

Для этого лучше используют очереди с setInterval и т.д.

Насчет некрасивых решений в JavaScripte - так это ж кто как пишет. сейчас уже многие склоняются к мнению, что JavaScript по выразительным средствам приближается к лучшим языкам программирования, и ставят его в один ряд с LISP, Perl и Python.

Спасибо за setInterval.
Я думал сделать так:
Код: plaintext
1.
2.
3.
4.
func()
{
    setTimeOut("func()",  2000 );
}

Она не виснит.
Работает потихоньку. Или всё равно плохо так делать?
...
Рейтинг: 0 / 0
11.04.2008, 01:53
    #35249923
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
MikeJunior[quot apapacy]
1. Каждый Ваш запрос не обязательно должен закончиться успехом. То есть рекурсия может остановиться.
Код: plaintext
1.
2.
3.
4.
func()
{
    setTimeOut("func()",  2000 );
}

Она не виснит.
Работает потихоньку. Или всё равно плохо так делать?

Если запрос подвиснет или сбойнет - некому очереднй раз вызвать setTimeOut()
+ Ваши локальные контексты не уничтожаются GC
...
Рейтинг: 0 / 0
11.04.2008, 06:35
    #35249945
Shiva Razrushitel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
apapacy... по выразительным средствам ... р.б. извините чайника, а что это за средства ?
и вообще, что есть "средство" в программировании ?
можно просто сцылочку

ps: или это из области живописи ?
...
Рейтинг: 0 / 0
11.04.2008, 15:07
    #35250077
MikeJunior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
apapacy
Если запрос подвиснет или сбойнет - некому очереднй раз вызвать setTimeOut()
+ Ваши локальные контексты не уничтожаются GC

Спасибо за разъяснение. :)
Попробую сделать с setInterval();
...
Рейтинг: 0 / 0
11.04.2008, 19:48
    #35250900
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
Shiva Razrushitel apapacy... по выразительным средствам ... р.б. извините чайника, а что это за средства ?
и вообще, что есть "средство" в программировании ?
можно просто сцылочку

ps: или это из области живописи ?

Нет это не из области живописи. Погуглить прежде чем флудить слабо было?
...
Рейтинг: 0 / 0
17.04.2008, 18:59
    #35262948
tIT-GP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLHttpRequest как повторить реквест нескольок раз?
А на кой ляд эта гадость? %
Есть же классные вещи:

http://docs.jquery.com/Ajax
http://dklab.ru/lib/JsHttpRequest/
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / XMLHttpRequest как повторить реквест нескольок раз? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]