Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript

Печать

Пример 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 соответственно.