Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AJAX. правиьность запросов

369
07 мая 2010 года
Kesano
451 / / 09.10.2007
Посмотрите мой чятег...
http://chat.lacetti.com.ua
прошу оценить кривизну AJAX'а...
Аякс каждые пару секунд обращается к бэкэнду, получает данные, выводит новые сообщения в окна...
Проблема в том, что в ФФ, например, остаются висеть десятки закрытых (вроде как) соединений...
Нужны советы по оптимизации...
Как заставить юзать одно соединение или минимум?
И как правильно обработать недополученный ответ от севера или вообще потерявшийся???...

У меня это всё кривенько...
Код:
function rec() {
xmlhttpr = getXmlHttpr();
xmlhttpr.open('POST', '/js/backend.php', true);
xmlhttpr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');


xmlhttpr.onreadystatechange = function() {
  if (xmlhttpr.readyState == 4) {
     if(xmlhttpr.status == 200) {
            clearTimeout(t2);
               eval(xmlhttpr.responseText);
               tm();
         }
  }
}
var ss="uid="+uid+"&lo="+lo+"&lp="+lp+"&a=rec";
xmlhttpr.send(ss);
var t2 = setTimeout( "try { xmlhttpr.abort(); } catch (e) { } finally { tm();}", 15000);
}


function tm() {
var t1=setTimeout("rec();", 1000);
}
339
10 мая 2010 года
verybadbug
619 / / 12.09.2005
Как заставить юзать одно соединение или минимум?

Код:
//в глобальных переменных
var conn_cnt = 0,
conn_max = 10; //максимальное количество соединений
...
function rec() {
  if (conn_cnt >= conn_max) { return false; }
  conn_cnt++;
  ...
  xmlhttpr.onreadystatechange = function() {
    if (xmlhttpr.readyState == 4) {
      conn_cnt--;
  ...
}

function tm() {
  conn_cnt--;
  ...
}
369
11 мая 2010 года
Kesano
451 / / 09.10.2007
Секундочку... Не увидел в вашем коде управение соединениями...
Вы пытаетесь ограничить количество соединений в выполнении скрипта...

НО количество ТЕКУЩИХ соединений И ТАК ограничено самой технологией в количестве 2 штук... т.е. более 2-х не закрытых соединений и так не может висеть.

----------
Может ли кто-то дать ссылку на русскоязычную статью по мультиплексорам (серверному приложению и механизму работы с клиентом)???
339
12 мая 2010 года
verybadbug
619 / / 12.09.2005
Цитата: Kesano
Как заставить юзать одно соединение или минимум?



Цитата: Kesano
НО количество ТЕКУЩИХ соединений И ТАК ограничено самой технологией в количестве 2 штук... т.е. более 2-х не закрытых соединений и так не может висеть.



К чему вопрос тогда?

369
12 мая 2010 года
Kesano
451 / / 09.10.2007
Просто соединения каждый раз устанавливаются из нового локального порта...
И в файрволе висит 50+ idle соединений...
Вопрос был к этому...

Только вчера до меня допёрло что из браузера этим управлять нельзя... бравзер открывает рэндомно свободный порт и устанавливает соединение...

Так что теперь вопрос больше сводится к корректности передачи данных и минимизации траффика для запросов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог