|
|
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
подскажите у меня страница на AJAX, в нете видел по-разному. У кого-то xmlHttpRequest создается на каждый "чих", т.е. при каждом действии, где нужно получить данные AJAX-ом. А нельзя создать это объект один раз при загрузке страницы и использовать его? По этому поводу инфы не нашел. Спасибо P.S. Хотелось бы познать тонкости... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 11:04 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Правильно делают. Что делать, если имеем 1 xhr, который еще не закончил выполнять запрос, а нам нужно отправить еще один? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 11:17 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
VTF!, в примерах везде пишут, что надо делать на каждый раз. Я кстати сегодня буквально этой темы коснулся тоже) изучал как в PHP из JavaScript передать значение переменной и вернуть результат обратно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 17:50 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Если используются синхронные запросы ( хотя бы изредка ) то иметь один объект для них - нормально. Как-то игрался с пулом запросов. Но что-то там в некороых браузерах работало не так как ожидается (кадется в ИЕ) - не припоню подробностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 15:58 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Кстати, вопрос достаточно в свое время актуальный. Т.к. для передачи параметоров функии-обработчику использовались замыкания и после обработки запроса ИЕ не разрывал циклические ссылки. Нужно было культурненько их самостоятельно рубить после использования. Иначе утечка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 16:03 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Чем не устраивает создание объекта на каждый запрос? Авторы браузеров стараются улучшают всякие там сборщики мусора, а мы им пулы придумываем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 18:10 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да пул не сработал. Ожидать пока там все разработчики браузеров подсуетятся не приходится. Я все еще рву циклические ссылки в об объекте ХмлХттпРеквест. Кстати JQuery последней генерации отказался от поддержки старых версий ИЕ (использует только встроенный объект, не ActiveX). кТО-НИБУДЬ ИСПОЛЬЗУЕТ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 19:52 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacy, это же какие версии IE Вы называете старыми, учитывая что нативный XHR появился в IE 7? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 10:52 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Тут сложный вопрос. Если бы у всех винда была не пайратская, ИЕ6 брал бы куда больший процент. Впрочем я пишу внутрикорпоративные приложения и совсем забил на ИЕ всех версий. Сорее достает другое, то что заходя под Линухом - хоть в Опере, хоть в ОгнеЛисе, на некоторые сайты преимущественно отечественного разлива, я сталкиваюсь или с ошибками верстки, или с полной их неработоспособностью, т.к. разработчики ориентировались на Винду и возможно на ИЕ, и пользовались, скорее всего, какими-то, ASP.Net или как его там буилдерами и стандартными компонентами "из палитры". Вместо того чтобы написать пару строчек валидного кода в блокноте. Хстати, отвечая на этот вопрос посмотрел сатистику иобнаружил всепобеждающщее шествие Хрома. Странно. Мне он совсем не нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 13:50 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacy, на вопрос-то ответ дайте прямой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 14:05 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Во-первых, я не подряжался давать прямые ответы Во-вторых, начиная с ИЕ 5.5 уже современные. Забавно0 что Вас это так беспокоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 15:07 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacy, мне просто любопытно. Однако Вы первый человек, кто считает ИЕ 5.5 - ИЕ 8 современными браузерами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 15:56 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacyЗабавно0 что Вас это так беспокоит.Забавно это читать от того, кто вместо простого и прямого ответа, выдаёт тираду про пайратскую винду, внутрикорпоративные приложения и каких-то криворуких отечественных разработчиков, предположительно ASP.NET :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 15:59 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacyТут сложный вопрос. Если бы у всех винда была не пайратская, ИЕ6 брал бы куда больший процент. Впрочем я пишу внутрикорпоративные приложения и совсем забил на ИЕ всех версий. Сорее достает другое, то что заходя под Линухом - хоть в Опере, хоть в ОгнеЛисе, на некоторые сайты преимущественно отечественного разлива, я сталкиваюсь или с ошибками верстки, или с полной их неработоспособностью, т.к. разработчики ориентировались на Винду и возможно на ИЕ, и пользовались, скорее всего, какими-то, ASP.Net или как его там буилдерами и стандартными компонентами "из палитры". Вместо того чтобы написать пару строчек валидного кода в блокноте. Хстати, отвечая на этот вопрос посмотрел сатистику иобнаружил всепобеждающщее шествие Хрома. Странно. Мне он совсем не нравится. Полностью поддерживаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 20:42 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
VTF!, Это зависит от того, какой сценарий вы на AJAX реализуете. Возьмем к примеру перезагрузку detail-списка при смене позиции в master-списке и нетерпеливого юзера, который часто тыкает в master. Если обходиться одним асинхронным xhr, то ответы всех запросов, кроме последнего, будут утрачены, что в данном случае правильно. Если же несколько xhr, и обработка ответа в лоб (заполнение detail) , то в detail-списке скорее всего вы увидите данные последнего ответа, что не обязательно будет соответствовать текущей позиции в master. Ну и обратный траффик будет больше. Если же через AJAX грузятся данные для разных контролов по требованию, то лучше иметь несколько xhr на каждый из них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 16:24 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да нуVTF!, Это зависит от того, какой сценарий вы на AJAX реализуете. Возьмем к примеру перезагрузку detail-списка при смене позиции в master-списке и нетерпеливого юзера, который часто тыкает в master. Если обходиться одним асинхронным xhr, то ответы всех запросов, кроме последнего, будут утрачены, что в данном случае правильно. Если же несколько xhr, и обработка ответа в лоб (заполнение detail) , то в detail-списке скорее всего вы увидите данные последнего ответа, что не обязательно будет соответствовать текущей позиции в master. Ну и обратный траффик будет больше.Никаких если, для таких случаев придумали debouncing и throttling . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 17:43 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
skyANAНикаких если, для таких случаев придумали debouncing и throttling . Все это таймерные примочки конечно полезны, но никак не гарантируют правильного поведения при разбросе времени ответа сервера на каждый запрос в 1-м сценарии с несколькими xhr. Устанавливать таймаут на обновление detail в максимально возможное время ответа сервера - тоже не выход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2015, 17:48 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да нуskyANAНикаких если, для таких случаев придумали debouncing и throttling . Все это таймерные примочки конечно полезны, но никак не гарантируют правильного поведения при разбросе времени ответа сервера на каждый запрос в 1-м сценарии с несколькими xhr. Устанавливать таймаут на обновление detail в максимально возможное время ответа сервера - тоже не выход.Что? Эти "примочки" исключают несколько xhr из первого сценария :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2015, 17:54 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
skyANAЧто? Эти "примочки" исключают несколько xhr из первого сценария :) Ну сам подумай. Стоит у тебя таймаут, скажем, на 3 секунды. Юзер тыкает раз в 4 секунды. Сервер отвечает от 1 до 100 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2015, 18:15 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да нуskyANAЧто? Эти "примочки" исключают несколько xhr из первого сценария :) Ну сам подумай. Стоит у тебя таймаут, скажем, на 3 секунды. Юзер тыкает раз в 4 секунды. Сервер отвечает от 1 до 100 секунд.Ты же писал про "нетерпеливого юзера". Эстонец что-ли? :) То есть ответ о сервера занимает до 100 секунд, а в интерфейсе это никак не отражается? Классный интерфейс, чё. А вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2015, 21:18 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
skyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни? Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну. Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2015, 23:43 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да нуskyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни? Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну. Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP.Не воспринимайте throttling так буквально :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2015, 00:59 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
Да нуskyANAА вообще грамотный throttling и никаких проблем. Клиент в состоянии ожидания ответа. Откуда несколько xhr? Объясни? Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну. Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP. Все было бы хорошо, если бы все браузеры вели себя одинаково. Вот контрпримеры на использование одного объекта запроса. 1) Во время 2-х или 3-х событий интерфейса отправляющий одинаковый запрос работает какая-то функция яваскрипт (т.е. движок блокирован) и естественно запрос откладывается. Далее все зависит от того в каком порядке браузер будет вызывать отложенные функции (в прямом, обратном, произвольном). 2) Некоторы браузеры (кажется ИЕ старых версий и возможно Опера - точно не помню) делает объект запроса недоступным пока он отрабатывает запрос. Но Вы правы в своем контрпримере про таймаут 3 с. запрос 4 с. и ответ сервера 100 с. Будут отправлены оба запроса и не обязательно первый отработает раньше второго. Но этот момент и следует учитывать при реализации запросов с задержкой. Я делаю так: запрос (предположим тот же на 4-й секунде) отменяет все предыдущие запросы. Разумеется, все равно возможны сравнительно маловероятные при грамотной разработке случаи, когда из-за блокировок интерфейса (более чем на те же 3 секунды) старый и новый запросы перепутаются местами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2015, 14:26 |
|
||
|
xmlHttpRequest один раз или каждый раз
|
|||
|---|---|---|---|
|
#18+
apapacyДа нупропущено... Я просто показал вариант сценария, при котором всякие таймерные примочки не помогают. Для throttling при этом надо ставить 100 секунд на xhr reply - и юзер ВСЕГДА будет ждать рефреша 100 секунд, хотя сервер отработать может и за одну. Использование же единого xhr тут решает проблему, и юзер видит ответ ASAP. Все было бы хорошо, если бы все браузеры вели себя одинаково. Вот контрпримеры на использование одного объекта запроса. 1) Во время 2-х или 3-х событий интерфейса отправляющий одинаковый запрос работает какая-то функция яваскрипт (т.е. движок блокирован) и естественно запрос откладывается. Далее все зависит от того в каком порядке браузер будет вызывать отложенные функции (в прямом, обратном, произвольном). 2) Некоторы браузеры (кажется ИЕ старых версий и возможно Опера - точно не помню) делает объект запроса недоступным пока он отрабатывает запрос. Но Вы правы в своем контрпримере про таймаут 3 с. запрос 4 с. и ответ сервера 100 с. Будут отправлены оба запроса и не обязательно первый отработает раньше второго. Но этот момент и следует учитывать при реализации запросов с задержкой. Я делаю так: запрос (предположим тот же на 4-й секунде) отменяет все предыдущие запросы. Разумеется, все равно возможны сравнительно маловероятные при грамотной разработке случаи, когда из-за блокировок интерфейса (более чем на те же 3 секунды) старый и новый запросы перепутаются местами.deferred давно уже придумали, описали и реализовали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2015, 19:02 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38847816&tid=1446356]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 522ms |

| 0 / 0 |
