1. Главная страница » Уроки Ajax » Обработка ответа, Ajax

Обработка ответа, Ajax

Автор: | 16.03.2013

В предыдущем примере мы сделали функцию запроса к серверу. Но она, по сути, небезопасна, так как мы не обрабатываем состояния объекта и состояния ответа от сервера.

Дополним наш код, чтобы он смог выводить визуальное оповещение о процессе загрузки.

...
Request.onreadystatechange = function()
{
  //Если обмен данными завершен
 if (Request.readyState == 4)
 {
  //Передаем управление обработчику пользователя
 r_handler(Request);
 }
 else
 {
  //Оповещаем пользователя о загрузке
 }
}
...

Как вы уже знаете, объект XMLHttpRequest позволяет узнать статус ответа от сервера. Воспользуемся этой возможностью.

...
Request.onreadystatechange = function()
{
  //Если обмен данными завершен
 if (Request.readyState == 4)
 {
 if (Request.status == 200)
 {
  //Передаем управление обработчику пользователя
 r_handler(Request);
 }
 else
 {
  //Оповещаем пользователя о произошедшей ошибке
 }
 }
 else
 {
  //Оповещаем пользователя о загрузке
 }
}
...

 

Варианты ответа от сервера

От сервера можно получить данные нескольких видов:

1. Обычный текст
2. XML
3. JSON

Если вы получаете обычный текст, то вы можете сразу же направить его в контейнер, то есть на вывод. При получении данных в виде XML вы должны обработать данные с помощью DOM-функций, и представить результат с помощью HTML.

JSON — это объектная нотация Javascript. С ее помощью можно представить объект в виде строки (здесь можно привести аналогию с функцией сериализации). При получении JSON-данных вы должны выполнить их, чтобы получить полноценный объект Javascript и произвести с ним необходимые операции. Помните, что такая передача данных и выполнение их не являются безопасными. Вы должны следить за тем, что поступает на исполнение.

Пример кода JSON:

{
"data":
{
 "misc":
 [
 {
 "name" : "JSON-элемент один",
 "type" : "Подзаголовок 1"
 },
 
 {
 "name" : "JSON-элемент два",
 "type" : "Подзаголовок 2"
 }
 ]
}
}

При получении такого кода, производим следующее действие:

eval(«var responsedata=(«+Request.responseText+»)»);

После выполнения данного кода вам будет доступен объект responsedata.

Работа с серверными языками программирования

Такая работа ничем не отличается от обычной. Для примеров я возьму PHP в качестве серверного языка. В клиентской части ничего не изменилось, но серверная часть теперь представлена PHP-файлом.

По традиции, начнем с приветствия нашему замечательному миру:

<?php

echo «Привет, Мир!»;

?>

При обращении к этому файлу клиенту вернется строка Привет, Мир! Как вы понимаете, это представляет широчайшие возможности для построения приложений. На основе передачи аргументов при вызове сервера с помощью XMLHttpRequest можно сделать параметризацию вывода, тем самым обеспечив обширную функциональность Web-приложения.

Помимо PHP, можно использовать любой другой серверный язык программирования.

1 2 3

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code