powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / xmlHttpRequest один раз или каждый раз
24 сообщений из 24, страница 1 из 1
xmlHttpRequest один раз или каждый раз
    #38847069
VTF!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите у меня страница на AJAX, в нете видел по-разному.
У кого-то xmlHttpRequest создается на каждый "чих", т.е. при каждом действии, где нужно получить данные AJAX-ом.
А нельзя создать это объект один раз при загрузке страницы и использовать его? По этому поводу инфы не нашел.
Спасибо
P.S. Хотелось бы познать тонкости...
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847075
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно делают.

Что делать, если имеем 1 xhr, который еще не закончил выполнять запрос, а нам нужно отправить еще один?
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847273
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VTF!, в примерах везде пишут, что надо делать на каждый раз. Я кстати сегодня буквально этой темы коснулся тоже) изучал как в PHP из JavaScript передать значение переменной и вернуть результат обратно)
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847612
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если используются синхронные запросы ( хотя бы изредка ) то иметь один объект для них - нормально.
Как-то игрался с пулом запросов. Но что-то там в некороых браузерах работало не так как ожидается (кадется в ИЕ) - не припоню подробностей.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847613
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, вопрос достаточно в свое время актуальный. Т.к. для передачи параметоров функии-обработчику использовались замыкания и после обработки запроса ИЕ не разрывал циклические ссылки. Нужно было культурненько их самостоятельно рубить после использования. Иначе утечка.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847646
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не устраивает создание объекта на каждый запрос? Авторы браузеров стараются улучшают всякие там сборщики мусора, а мы им пулы придумываем.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847666
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да пул не сработал. Ожидать пока там все разработчики браузеров подсуетятся не приходится. Я все еще рву циклические ссылки в об объекте ХмлХттпРеквест. Кстати JQuery последней генерации отказался от поддержки старых версий ИЕ (использует только встроенный объект, не ActiveX). кТО-НИБУДЬ ИСПОЛЬЗУЕТ ?
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847735
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy, это же какие версии IE Вы называете старыми, учитывая что нативный XHR появился в IE 7?
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847784
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут сложный вопрос.
Если бы у всех винда была не пайратская, ИЕ6 брал бы куда больший процент. Впрочем я пишу внутрикорпоративные приложения и совсем забил на ИЕ всех версий. Сорее достает другое, то что заходя под Линухом - хоть в Опере, хоть в ОгнеЛисе, на некоторые сайты преимущественно отечественного разлива, я сталкиваюсь или с ошибками верстки, или с полной их неработоспособностью, т.к. разработчики ориентировались на Винду и возможно на ИЕ, и пользовались, скорее всего, какими-то, ASP.Net или как его там буилдерами и стандартными компонентами "из палитры". Вместо того чтобы написать пару строчек валидного кода в блокноте.
Хстати, отвечая на этот вопрос посмотрел сатистику иобнаружил всепобеждающщее шествие Хрома. Странно. Мне он совсем не нравится.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847791
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy, на вопрос-то ответ дайте прямой
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847816
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, я не подряжался давать прямые ответы
Во-вторых, начиная с ИЕ 5.5 уже современные.
Забавно0 что Вас это так беспокоит.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847834
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy, мне просто любопытно. Однако Вы первый человек, кто считает ИЕ 5.5 - ИЕ 8 современными браузерами
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38847836
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyЗабавно0 что Вас это так беспокоит.Забавно это читать от того, кто вместо простого и прямого ответа, выдаёт тираду про пайратскую винду, внутрикорпоративные приложения и каких-то криворуких отечественных разработчиков, предположительно ASP.NET :)
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38848653
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyТут сложный вопрос.
Если бы у всех винда была не пайратская, ИЕ6 брал бы куда больший процент. Впрочем я пишу внутрикорпоративные приложения и совсем забил на ИЕ всех версий. Сорее достает другое, то что заходя под Линухом - хоть в Опере, хоть в ОгнеЛисе, на некоторые сайты преимущественно отечественного разлива, я сталкиваюсь или с ошибками верстки, или с полной их неработоспособностью, т.к. разработчики ориентировались на Винду и возможно на ИЕ, и пользовались, скорее всего, какими-то, ASP.Net или как его там буилдерами и стандартными компонентами "из палитры". Вместо того чтобы написать пару строчек валидного кода в блокноте.
Хстати, отвечая на этот вопрос посмотрел сатистику иобнаружил всепобеждающщее шествие Хрома. Странно. Мне он совсем не нравится.

Полностью поддерживаю.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38850890
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VTF!,

Это зависит от того, какой сценарий вы на AJAX реализуете.

Возьмем к примеру перезагрузку detail-списка при смене позиции в master-списке и нетерпеливого юзера, который часто тыкает в master. Если обходиться одним асинхронным xhr, то ответы всех запросов, кроме последнего, будут утрачены, что в данном случае правильно. Если же несколько xhr, и обработка ответа в лоб (заполнение detail) , то в detail-списке скорее всего вы увидите данные последнего ответа, что не обязательно будет соответствовать текущей позиции в master. Ну и обратный траффик будет больше.

Если же через AJAX грузятся данные для разных контролов по требованию, то лучше иметь несколько xhr на каждый из них.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38850920
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуVTF!,

Это зависит от того, какой сценарий вы на AJAX реализуете.

Возьмем к примеру перезагрузку detail-списка при смене позиции в master-списке и нетерпеливого юзера, который часто тыкает в master. Если обходиться одним асинхронным xhr, то ответы всех запросов, кроме последнего, будут утрачены, что в данном случае правильно. Если же несколько xhr, и обработка ответа в лоб (заполнение detail) , то в detail-списке скорее всего вы увидите данные последнего ответа, что не обязательно будет соответствовать текущей позиции в master. Ну и обратный траффик будет больше.Никаких если, для таких случаев придумали debouncing и throttling .
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851324
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНикаких если, для таких случаев придумали debouncing и throttling .
Все это таймерные примочки конечно полезны, но никак не гарантируют правильного поведения при разбросе времени ответа сервера на каждый запрос в 1-м сценарии с несколькими xhr. Устанавливать таймаут на обновление detail в максимально возможное время ответа сервера - тоже не выход.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851328
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуskyANAНикаких если, для таких случаев придумали debouncing и throttling .
Все это таймерные примочки конечно полезны, но никак не гарантируют правильного поведения при разбросе времени ответа сервера на каждый запрос в 1-м сценарии с несколькими xhr. Устанавливать таймаут на обновление detail в максимально возможное время ответа сервера - тоже не выход.Что? Эти "примочки" исключают несколько xhr из первого сценария :)
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851338
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто? Эти "примочки" исключают несколько xhr из первого сценария :)
Ну сам подумай. Стоит у тебя таймаут, скажем, на 3 секунды. Юзер тыкает раз в 4 секунды. Сервер отвечает от 1 до 100 секунд.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851377
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуskyANAЧто? Эти "примочки" исключают несколько xhr из первого сценария :)
Ну сам подумай. Стоит у тебя таймаут, скажем, на 3 секунды. Юзер тыкает раз в 4 секунды. Сервер отвечает от 1 до 100 секунд.Ты же писал про "нетерпеливого юзера". Эстонец что-ли? :)

То есть ответ о сервера занимает до 100 секунд, а в интерфейсе это никак не отражается? Классный интерфейс, чё.

А вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни?
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851432
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни?
Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну.
Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38851458
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуskyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни?
Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну.
Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP.Не воспринимайте throttling так буквально :)
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38857015
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуskyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни?
Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну.
Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP.

Все было бы хорошо, если бы все браузеры вели себя одинаково.
Вот контрпримеры на использование одного объекта запроса.
1) Во время 2-х или 3-х событий интерфейса отправляющий одинаковый запрос работает какая-то функция яваскрипт (т.е. движок блокирован) и естественно запрос откладывается. Далее все зависит от того в каком порядке браузер будет вызывать отложенные функции (в прямом, обратном, произвольном).
2) Некоторы браузеры (кажется ИЕ старых версий и возможно Опера - точно не помню) делает объект запроса недоступным пока он отрабатывает запрос.

Но Вы правы в своем контрпримере про таймаут 3 с. запрос 4 с. и ответ сервера 100 с.
Будут отправлены оба запроса и не обязательно первый отработает раньше второго.
Но этот момент и следует учитывать при реализации запросов с задержкой.
Я делаю так: запрос (предположим тот же на 4-й секунде) отменяет все предыдущие запросы. Разумеется, все равно возможны сравнительно маловероятные при грамотной разработке случаи, когда из-за блокировок интерфейса (более чем на те же 3 секунды) старый и новый запросы перепутаются местами.
...
Рейтинг: 0 / 0
xmlHttpRequest один раз или каждый раз
    #38857087
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyДа нупропущено...

Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну.
Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP.

Все было бы хорошо, если бы все браузеры вели себя одинаково.
Вот контрпримеры на использование одного объекта запроса.
1) Во время 2-х или 3-х событий интерфейса отправляющий одинаковый запрос работает какая-то функция яваскрипт (т.е. движок блокирован) и естественно запрос откладывается. Далее все зависит от того в каком порядке браузер будет вызывать отложенные функции (в прямом, обратном, произвольном).
2) Некоторы браузеры (кажется ИЕ старых версий и возможно Опера - точно не помню) делает объект запроса недоступным пока он отрабатывает запрос.

Но Вы правы в своем контрпримере про таймаут 3 с. запрос 4 с. и ответ сервера 100 с.
Будут отправлены оба запроса и не обязательно первый отработает раньше второго.
Но этот момент и следует учитывать при реализации запросов с задержкой.
Я делаю так: запрос (предположим тот же на 4-й секунде) отменяет все предыдущие запросы. Разумеется, все равно возможны сравнительно маловероятные при грамотной разработке случаи, когда из-за блокировок интерфейса (более чем на те же 3 секунды) старый и новый запросы перепутаются местами.deferred давно уже придумали, описали и реализовали
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / xmlHttpRequest один раз или каждый раз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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