Изучаем Java EE 7 - [177]
Термин AJAX был придуман в 2005 году. Еще в 1999 году компания Microsoft создала объект XMLHttpRequest как элемент управления ActiveX в Internet Explorer 5. В 2006 году W3C выпустил первый проект спецификации для объекта XMLHttpRequest, который сейчас поддерживается большинством браузеров. В то же время несколько компаний придумали способ сделать AJAX промышленным стандартом для насыщенной платформы приложений на основе открытых технологий. Результатом этой работы стало создание OpenAjax Alliance, который состоит из продавцов, проектов с открытым исходным кодом и компаний, использующих технологии на основе AJAX.
Как показано на рис. 11.7, в традиционных веб-приложенях браузер должен запросить полные HTML-документы с сервера. Пользователь нажимает кнопку, чтобы отправить или получить информацию, ждет ответа сервера, а затем получает всю страницу, которая потом загружается в браузер. AJAX, с другой стороны, использует асинхронную передачу данных (HTTP-запросы) между браузером и сервером, что позволяет веб-страницам запрашивать с сервера небольшие фрагменты информации (JSON- или XML-данные), а не целые страницы. Пользователь остается на той же странице, в то время как часть JavaScript запрашивает или отправляет данные на сервер асинхронно и обновляются только части страницы, что делает веб-приложения быстрее и удобнее для пользователя.
В принципе, AJAX основан на следующих концепциях:
• XHTML и CSS для представления данных;
• DOM для динамического отображения и взаимодействия с данными;
• XML и XSLT для обмена, обработки и отображения XML-данных;
• объект XMLHttpRequest для асинхронной связи;
• JavaScript, чтобы свести эти технологии вместе в браузере.
XMLHttpRequest — важная часть AJAX, так как он является DOM API, используемым JavaScript для передачи XML от браузера на сервер. Возвращаемые данные должны быть получены на стороне клиента для обновления части страницы динамически с помощью JavaScript. Данные могут иметь несколько форматов, такие как XHTML, JSON или даже простой текст.
AJAX поддерживается с версии JSF 2.0, так что вам не придется разрабатывать JavaScript для обработки XMLHttpRequest. Вы должны использовать библиотеку JavaScript, которая указана и поставляется с реализацией JSF.
Рис. 11.7. Простые вызовы HTTP против HTTP-вызовов AJAX
Поддержка в JSF
Предыдущие версии JSF не предлагали встроенного решения AJAX, так что, чтобы заполнить этот пробел, должны были использоваться сторонние библиотеки. Иногда это усложняло код за счет производительности. Начиная с версии JSF 2.0, все стало гораздо проще, так как поддержка AJAX встроена в любую реализацию JSF.
Прежде всего, существует указанная библиотека JavaScript (jsf.js) для выполнения взаимодействия с AJAX, которое означает, что вы не должны разрабатывать собственные сценарии или манипулировать объектами XMLHttpRequest напрямую. Вместо разработки кода на JavaScript вы можете использовать набор стандартных функций для отправки асинхронных запросов и приема данных. Для того чтобы применять эту библиотеку на вашей странице, вам нужно добавить ресурс jsf.js следующей строкой кода:
>
Тег