Страница 379 из 478 Пример 18.1. Кросс-браузерная Ajax-функция <script> function ajaxRequestO { try // Браузер не относится к семейству IE? { var request = new XMLHttpRequestO } catch(el) { try // Это IE 6+? { request = new Acti veXObject("Msxml2.XMLHTTP") } catch(e2) { try // Это IE 5? { request = new ActiveXObjectC'Microsoft.XMLHTTP") } catch(еЗ) // Этот браузер не поддерживает Ajax { request = false } } } return request } </script> Давайте вспомним элементарные способы обработки ошибок из предыдущей главы, где использовалась конструкция try.. .catch. Код примера 18.1 является прекрасной иллюстрацией той пользы, которую можно извлечь из применения этой конструкции, поскольку в этом коде ключевое слово try используется для выполнения Ajax-команды не в формате IE и в случае успеха — перехода к завершающей инструкции return, возвращающей новый объект. В случае неудачи за счет использования ключевого слова catch осуществляется перехват ошибки и выполняется следующая команда. И опять в случае успеха возвращается новый объект, а в случае неудачи предпринимается попытка выполнения последней из трех команд. Если эта попытка окажется неудачной, значит, браузер не поддерживает Ajax и объект request получает значение fal se, а в случае удачи возвращается полноценный объект. Итак, теперь у вас есть кросс-браузерная функция запроса Ajax, которую можно будет добавить к своей библиотеке полезных функций JavaScript. Теперь, когда вы располагаете средством для создания объекта XMLHttpRequest, возникает вопрос о том, что можно делать с подобными объектами? Каждый такой объект поступает с набором свойств (переменных) и методов (функций), перечисленных в табл. 18.1 и 18.2 соответственно.
|