Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.06.2014, 16:19
Новичок на форуме
Отправить личное сообщение для OlegOlegOleg1980 Посмотреть профиль Найти все сообщения от OlegOlegOleg1980
 
Регистрация: 14.06.2014
Сообщений: 4

Несколько аякс запросов
Добрый день!
Возможно ли работать с несколькими аякс запросами одновременно?
Поясняю.
На странице через аякс запрос подгружается контент по onscroll.
И также есть setInterval который вызывает аякс запрос для обновления статусной информации на странице.
Вопрос - насколько возможна такая схема? Не будут ли пересекаться ответы от запросов, т.к. они могут быть в разное время (позже,раньше и одновременно).
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 14.06.2014, 20:19
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,139

Сообщение от OlegOlegOleg1980 Посмотреть сообщение
Вопрос - насколько возможна такая схема? Не будут ли пересекаться ответы от запросов, т.к. они могут быть в разное время (позже,раньше и одновременно).
Спасибо!
Это зависит от конкретной реализации механизма ajax запросов в JavaScript.
А именно от функции которая обрабатывает ответ она может быть реализована одна на всех или же отдельная функция на каждый ответ
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2014, 21:03
Новичок на форуме
Отправить личное сообщение для OlegOlegOleg1980 Посмотреть профиль Найти все сообщения от OlegOlegOleg1980
 
Регистрация: 14.06.2014
Сообщений: 4

Сообщение от MallSerg Посмотреть сообщение
Это зависит от конкретной реализации механизма ajax запросов в JavaScript.
А именно от функции которая обрабатывает ответ она может быть реализована одна на всех или же отдельная функция на каждый ответ
Функция обработки ответа передается как параметр при вызове функции аякс запроса. Т.е. при каждом вызове функции аякс запроса создается новый объект xmlhttp со своими параметрами.

Я плохо знаком с структурным устройством самого объекта xmlhttp, поэтому и возник такой вопрос. Не до конца понимаю как будет различать ответы сервера этот объект xmlhttp, если несколько запросов были отправлены в разное время, а ответы придут одновременно, либо не в той последовательности. По идее они не должны пересекаться, т.к. работают в разных экземплярах объектов функций аякс, но в js с объектами немного по другому не как в классике, и если они доступны не прямо а по ссылке, то тогда не получится совместить несколько запросов.
Можете подробнее прокомментировать мои опасения?
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2014, 00:00
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,139

xmlhttp отправляет HTTP запросы.
На каждый запрос создается TCP/IP соединение.

xmlhttp -> создает соединение -> отправляет запрос -> ждет ответа -> получает ответ или ошибку -> вызывает событие onreadystatechange в котором обычно вызывают функцию которая обрабатывает ответ.

т.е. у каждого запроса свой ответ и свое событие onreadystatechange
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2014, 12:28
Новичок на форуме
Отправить личное сообщение для OlegOlegOleg1980 Посмотреть профиль Найти все сообщения от OlegOlegOleg1980
 
Регистрация: 14.06.2014
Сообщений: 4

Сообщение от MallSerg Посмотреть сообщение
xmlhttp отправляет HTTP запросы.
На каждый запрос создается TCP/IP соединение.

xmlhttp -> создает соединение -> отправляет запрос -> ждет ответа -> получает ответ или ошибку -> вызывает событие onreadystatechange в котором обычно вызывают функцию которая обрабатывает ответ.

т.е. у каждого запроса свой ответ и свое событие onreadystatechange
я правильно понимаю, что созданное соединение висит до тех пор пока не придет ответ либо сработает таймаут??
т.е. один аякс запрос создает свое соединение, второй запрос свое - и эти два соедиенения висят одновременно? И не важно когда сервер отдаст ответ - он все равно по своему родному соединению будет отдавать свой ответ именно для своего соединения и ответ с одного соединения никак не может попасть в другое соедиенеие? правильно рассуждаю?
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2014, 14:26
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

OlegOlegOleg1980,
можешь, главное не вылезь за допустимое количество одновременных запросов, иначе последующие будут затирать предыдущие. А количество их разниться в зависимости от браузера. Да и слать множество запросов - ни есть хорошая практика. всякий раз передаются заголовки. Смотри в сторону патернов прокси-объект - для кеша будешь пользовать, и прокси - для объединения множества запросов в один

Последний раз редактировалось dmitriymar, 15.06.2014 в 15:30.
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2014, 17:21
Новичок на форуме
Отправить личное сообщение для OlegOlegOleg1980 Посмотреть профиль Найти все сообщения от OlegOlegOleg1980
 
Регистрация: 14.06.2014
Сообщений: 4

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и устранение причины странных запросов AndrewP Работа 2 29.11.2013 14:10
Несколько ajax запросов одновременно pitbull0007 AJAX и COMET 3 16.10.2012 19:08
PHP: несколько AJAX запросов с долговременной обработкой на сервере FINoM Серверные языки и технологии 9 20.03.2012 19:50
Очередь XML запросов Евгений М AJAX и COMET 4 01.02.2012 11:05
Ajax - отсылается несколько запросов. DorianLeroy Общие вопросы Javascript 0 26.09.2011 18:46