Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

    Глобальное ускорение Wordpress Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.




  •  Часы


  •  Поиск

Optimaze » Программирование » Введение в Ajax




Введение в Ajax

  1. Получение результата
  2. Параметры и HTTP-методы


Prototype предоставляет разработчику простой кросс-браузерный инструментарий для осуществления Ajax-запросов. Кроме обычных запросов к серверу, он так же обрабатывает возвращаемый сервером Javascript-код и содержит поддержку pool-инга.

Все методы, относящиеся к Ajax, содержатся в глобальном объекте Ajax. Коммуникация с сервером осуществляется посредством объекта xmlHttpRequest, но его различная реализация в разных браузерах для пользователя незаметно – все это скрыто внутри Prototype.

 

Запросы осуществляются посредством создания экземпляров класса Ajax. Request.

 

new Ajax. Request(‘/some_url’, { method:‘get’ });

Первый параметр – это URL для запроса, второй – хэш опций. В данном примере этот хэш содержит только один параметр method, который определяет метод для HTTP-запроса (в данном случае – GET). Если метод не указан, то по умолчанию используется POST.

 

Получение результата

Ajax-запросы осуществляются асинхронно, что означает, что вы должны указать коллбэки для обработки ответов. Коллбэки передаются в хэше опций при создании запроса:

 

new Ajax. Request(‘/some_url’,

  {

    method:‘get’,

    onSuccess: function(transport){

      var response = transport. responseText || "no response text";

      alert("Success! \n\n" + response);

    },

    onFailure: function(){ alert(‘Something went wrong… ’) }

  });

  

В этом примере в запрос передаются 2 коллбэка, которые выводят сообщение при завершении запроса (onSuccess – при удачном завершении и onFailure при ошибке).

Результат запроса определяется на основе статуса, сообщенного сервером. В коллбэки в качестве параметров передается объект xmlHttpRequest, из которого можно получить такие значения, как responseText и responseXML.

 

Вы можете определить 2 коллбэка, один или вообще ни одного – все зависит от ситуации. В дополнение к уже описанным коллбэкам так же существуют следующие:

onUninitialized,

onLoading,

onLoaded,

onInteractive,

onComplete и

onException.

 

Все они соответствуют определенным состояниям объекта xmlHttpRequest за исключением onException, который вызывается при возникновении исключений в других коллбэках.

 

Так же доступны коллбэки onXXX, где XXX является HTTP-статусом ответа сервера – например, 200 или 404. Будте осторжны при их использовании, так как onSuccess и onFailure не будут вызваны при наличии onXXX-коллбэков, которые имеют более высокий приоритет.

 

Параметры и HTTP-методы

Вы можете передать параметры для запроса в ключе parameters при создании запроса:

 

new Ajax. Request(‘/some_url’, {

  method: ‘get’,

  parameters: { company:‘example’, limit:12 }

  });

 

Параметры можно передавать в виде хэша (как в приведенном примере), либо в виде строки (например, company=example&limit=12).

Вы можете передавать запросы как в GET-, так и в POST-запросы. Вы должны следить за тем, чтобы GET-запросы никогда не приводили к изменению данных на сервере. Так же, браузеры обычно не кэшируют POST-запросы, но кэшируют GET.

 

Одно из основных применений запросов с параметрами – это отправка формы посредством Ajax, и в Prototype есть для этого вспомогательный метод Form. serialize:

 

new Ajax. Request(‘/some_url’, {

  parameters: Form. serialize(‘id_of_form_element’)

  });

Если вам нужно вставить в запрос специфичные HTTP-заголовки, вы можете передать их в ключе requestHeaders. Они могут являться хэшем или массивом, например ['X-Custom-1', 'value', 'X-Custom-2', 'other value'].

 

Если вам нужно для какой-либо цели указать тело POST-запроса (состоящее не из параметров, указанных в ключе parameters), для этого существует специальный ключ postBody. Этот ключ имеет приоритет над ключом parameters, так что используйте его осторожно.



Рейтинг: 4.6/5, основан на 25 голосах.


Нравится



Вернутся назад


   

Вам будет интересно:

Восстановление NTFS в Ubuntu

После перезагрузки Убунту заругалась и отказалась монтировать диск – мол, ошибки в структуре.

Атрибуты и аннотации: метаданные против чистоты кода

Атрибуты (Attributes) в языке C# - это удобный способ добавления метаданных к классу, свойству или методу.

HTML 5 – Часть 2. Интерактивный холст

В первой части я показал, как создать холст, на котором генерируются пузыри случайного размера и цвета.

Android - Работа с базой данных (часть 2)

В последний раз мы прошли такую себе мини-лекцию по базам. Сегодня время пришло заняться практикой.



  •  Публикации


8 методов раскрутки своего форума с нуля

8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

Как привлекать посетителей на проект

Как привлекать посетителей на проект Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.

Про MySQL, серверы и PayPal

Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

Реклама в Твиттере. Как подать свой продукт

Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

Пока блог на локалхосте

Пока блог на локалхосте Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...

Авторитет блоггера притягивает

Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.