Регистрация    Вход    Форум    Поиск    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.8/5, основан на 25 голосах.


Нравится



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


   

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

Маршрутизация на сайте средствами PHP

Когда то я сам пользовался обычной switch-case маршрутизацией и думал, что это удобно (на самом деле даже такая маршрутизация куда лучше, чем ее отсутствие).

Игры на HTML5 Canvas для чайников – часть I

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

Доступ к статическим полям в Spring.NET

Часто при конфигурации приложения через Spring. NET xml-файл требуется присвоить какому-то свойству значение статического поля определенного класса.

Выполнение JavaScript-кода

Иногда приложение проектируется таким образом, что сервер в качестве ответа возвращает JavaScript-код, который должен быть выполнен в браузере.



  •  Публикации


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

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

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

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

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

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

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

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

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

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

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

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