![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
Для чего возвращается значение request ? "return request;" Без это строки, что пойдет не так ? |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
А как по-вашему, для чего служит метод newRequest?
|
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
т.е. это ключевая строка, тогда для чего HTTP._factory = factory; просто запомнить значение и все ? зачем тогда создавалась переменная HTTP._factory = null; Чет я туплю, простите.
Хотя ща попытаюсь воспроизвести алгоритм. По чуть чуть доходит. ))) Это сообщение отредактировал(а) zenerru - 2.10.2010, 08:08 |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Этот метод (newRequest) при первом вызове перебирает (в цикле по массиву _factories) всевозможные способы создания объекта XMLHttpRequest, поскольку в разных браузерах подходы к созданию различны.
Как только метод нашел нужный для текущего браузера конструктор объекта XMLHttpRequest, он, условно говоря, запоминает его в свойстве _factory, чтобы при следующем вызове не повторять опять работу с перебором возможных способов, а сразу вызвать нужный конструктор через функцию, ранее записаную в свойство _factory. Это сообщение отредактировал(а) Amphiluke - 2.10.2010, 08:17 |
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
парни, спасибо всем
|
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
парни, а для чего вообще вводить переменную request. нельзя ли просто обойтись factory, и для проверки условия, и для присвоения переменной HTTP._factory, и для return
|
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
zenerru, вы для начала лучше почитайте чего-нибудь по AJAX'у. Переменная request совершенно необходима для осуществления запросов, поскольку именно эта переменная ссылается на объект XMLHttpRequest, который располагает методами open, send и другими, свойствами readyState, responseText/responseXML и т. д., т.е. всеми необходимыми атрибутами для успешной отправки запроса и получения ответа от сервера.
А вот атрибут HTTP._factory как раз не так важен. Это всего лишь ссылка на функцию, вызывающую конструктор объекта XMLHttpRequest. Обычно обхоятся без нее, всякий раз перебирая всевозможные конструкторы, а тут уж автор кода решил для большей грамотности запомнить нужный конструктор, чтобы не искать его потом. Добавлено через 9 минут и 15 секунд А, прошу прощения, кажется, я немного не понял ваш вопрос. Вы имеете в виду, что введение переменной request ведет избыточности кода, когда уже имеется переменная factory? Не. Переменная factory только ссылается на функцию, которая вызывает нужный конструктор, но результат вызова конструктора (т.е. объект XMLHttpRequest) она не хранит. Переменная request как раз нужна, чтобы хранить результат, возвращенный конструктором, т.е. сам объект XMLHttpRequest. Это сообщение отредактировал(а) Amphiluke - 3.10.2010, 14:32 |
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
понял, спасибо большое )
|
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
я думаю, это последнее уточнение. Но получается так. Если HTTP._factory не пуст. Вызывается нужный конструктор (объект). А где в это время request ? ведь этот код уже не выполняется.
Я просто не понимаю, что происходит после вызова return HTTP._factory(); эта функция хранит ссылку на нужный конструктор. Конструктор выполняется и сам возвращает request ? в общем я правильно понимаю, что return request; выполняется один раз, пока не определена переменная HTTP._factory(); ? А дальше что с ней происходит-то. Блин, я в общем туплю. Даже не понимаю как правильно код разбирать, чтобы по полочкам все разобрать ((( |
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
спасибо еще раз, я разобрался полностью, разобрал готовые примеры и понял что к чему.
|
|||
|
||||
| zenerru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 15.12.2009 Репутация: нет Всего: нет |
Я вот не знаю, правильно ли я понял, эти 2 строчки равносильны ? return HTTP._factory(); и return request;
|
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
||||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |