powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX, синхронный режим
15 сообщений из 15, страница 1 из 1
AJAX, синхронный режим
    #36048481
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите разобраться с AJAX. Дело в том, что мне надо из TEXTAREA передать текст в нескольких порциях. Следовательно, я использую синхронную передачу, т.к нужно принимать пакеты один за одним. Но при этом зависает браузер IE. Как можно обойти зависание браузера, или возможно ли, в моем случае, использовать асинхронный режим?

Код: 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.
var req;
var url;
var text_send;

function send_data() 
{
  req = null;
  if (window.XMLHttpRequest) 
  {
    try 
    {
      req = new XMLHttpRequest();
    } 
    catch (e){}
  } 
  else if (window.ActiveXObject) 
  {
    try 
    {
      req = new ActiveXObject(''Msxml2.XMLHTTP'');
    } 
    catch (e)
    {
      try 
      {
        req = new ActiveXObject(''Microsoft.XMLHTTP'');
      } 
        catch (e){}
    }
  }
  if (req) 
  {
    url = "DownloadBigDoc.ADD?p_id=1521&p_text=";
    text_send = this.fforum.p_txts.value;
    for (var i =  1 ; i <= text_send.length; i++) 
    {
      url=url+encodeURIComponent(text_send.substring(i- 1 ,i));
      
      if (((i% 350 )== 0 )||(i==text_send.length))
      {
        req.open("POST",url, false);
        req.send(null);
        url="DownloadBigDoc.ADD?p_id=1521&p_text=";
      }
    }
  }
}
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36048506
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совсем забыл, есть еще проблема.

Если в
Код: plaintext
if (((i% 350 )== 0 )||(i==text_send.length))
вместо 350 написать 500 и больше то выскакивает ошибка на строчке
Код: plaintext
req.send(null);
"Не удается найти указанный ресурс".
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36048532
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мож пакеты пронумеровать для асинхронной передачи....?

А какой смысл в передаче кусками? У серверов вроде достаточно большое ограничение, обычно от двух мегабайт, да можно и подкрутить. если надо больше....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36048629
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я совсем не понимаю, зачем вобще реализовали синхронный режим, точнее, знаю - чтобы keep-alive можно было реализовать, но для целей, в которых его применяют в 99.9% - это глупость. Нельзя передавать данные в синхронном режиме!

А в твоем случае можно просто сделать рекурсию функции, которая отдает порции - очень просто. Для контроля используй внешние флаги: разбил на куски, отправил подготовительный пакет, в рекурсии отправил все куски. В подготовительном пакете ознакомили сервер с предстоящей передачей и количеством "кусков" - это наиболее простой и понятный способ ...

Но я также не понимаю, почему нельзя отправить все и сразу? Неужели настолько огромен textArea, что его надо разбирать? Если он "тянет" на мегабайты, интересно, как себя ведет страничка? ;)
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36048808
Fund-A-Mental
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может проще file upload использовать? Если textarea содержит такой огромный текст, что его надо на куски бить?
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049159
69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
69
Гость
Смени пут на гет и всех делов
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049415
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст не всегда слишком огромный. Я использую mod_plsql в котором, к сожеленью, есть ограничение в 32К. Но иногда необходимо передать и больше размер. Для этого и необходимо разбить на куски.
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049418
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
69,
что, на что сменить?
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049421
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckЯ совсем не понимаю, зачем вобще реализовали синхронный режим, точнее, знаю - чтобы keep-alive можно было реализовать, но для целей, в которых его применяют в 99.9% - это глупость. Нельзя передавать данные в синхронном режиме!

А в твоем случае можно просто сделать рекурсию функции, которая отдает порции - очень просто. Для контроля используй внешние флаги: разбил на куски, отправил подготовительный пакет, в рекурсии отправил все куски. В подготовительном пакете ознакомили сервер с предстоящей передачей и количеством "кусков" - это наиболее простой и понятный способ ...

Но я также не понимаю, почему нельзя отправить все и сразу? Неужели настолько огромен textArea, что его надо разбирать? Если он "тянет" на мегабайты, интересно, как себя ведет страничка? ;)

А это идея мне понравилась. Попробую реализовать.
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049484
69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
69
Гость
Млин, в натуре говорю - при запросе PUT ишак требует наличия http-параметров запроса иначе виснит - а ты о высоких материях...
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36049489
69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
69
Гость
serg-s-s69,
что, на что сменить?

Замени POST на GET
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36051252
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
69serg-s-s69,
что, на что сменить?

Замени POST на GET

и что с этого будет??? Если я не ошибаюсь, методом GET можно предать максимум 255 символов.
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36051314
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4k
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36051378
serg-s-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В любом случае, попробывал с get - не получилось. Все равно зависает.
...
Рейтинг: 0 / 0
AJAX, синхронный режим
    #36051573
69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
69
Гость
Что-то в этом духе

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
var url = "DownloadBigDoc.ADD";
var data = "p_id=1521&p_text=";

    text_send = this.fforum.p_txts.value;
    for (var i =  1 ; i <= text_send.length; i++) 
    {
      data = data +encodeURIComponent(text_send.substring(i- 1 ,i));
      
      if (((i% 350 )== 0 )||(i==text_send.length))
      {
        req.open("POST",url, false);
        req.send(data);
        url="DownloadBigDoc.ADD";
        data = "p_id=1521&p_text=";
      }

...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX, синхронный режим
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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