Книга: ASP.NET MVC Framework

Функции для работы с Ajax

jQuery.ajax

Функция предназначена для организации Ajax-запросов и представляет собой самый активный элемент jQuery API, но в то же время самый низкоуровневый. jQuery.ajax принимает один-единственный параметр — структуру данных, которая описывает все, что необходимо для организации асинхронного запроса. Структура данных может содержать следующие поля:

? async — булево значение, определяющее, будет ли запрос асинхронным. По умолчанию async=true;

? beforeSend — определяет функцию, которая будет вызвана перед отправкой асинхронного запроса. Этой функции передается единственный параметр текущий объект XMLHttpRequest;

? cache — позволяет управлять кэшированием страниц, по умолчанию установлено cache=true;

? complete — определяет функцию, которая вызывается в момент завершения запроса, в том числе в случае неудачного запроса. В функцию передается два параметра: текущий объект XMLHttpRequest и строка, которая указывает статус завершения запроса;

? contentType — определяет строковое значение типа данных запроса (HTTP-заголовок content-type). По умолчанию значение устанавливается в application/x-www-form-urlencoded;

? data — данные, представленные объектом или строкой, которые должны быть отправлены на сервер вместе с запросом;

? dataFilter — определяет функцию, которая вызывается для полученных в результате запроса данных. Подразумевается, что данная функция проведет проверку данных и приведет их в безопасный для использования на стороне клиента вид. Функция принимает два параметра: собственно принятые с сервера данные и строковое значение типа данных;

? dataType — строка, определяющая тип данных, который ожидается в результате запроса. В зависимости от некоторых условий по умолчанию значение этого параметра устанавливается в "xml" или "html";

? error — определяет функцию, которая будет вызвана в случае возникновения какой-либо ошибки при выполнении асинхронного запроса. Функция принимает три параметра: текущий объект XMLHttpRequest, строку с описанием типа ошибки и опциональный объект с описанием исключения, если оно было вызвано;

? global — булево значение, которое определяет, должно ли выполнение этого запроса быть глобальным, что приводит к реагированию на него функций, или вызов не должен вызывать глобальные события. По умолчанию global=true;

? ifModified — булево значение, которое указывает, что запрос должен считаться только тогда, когда возвращенные данные отличаются с момента прошлого запроса. По умолчанию ifModified=false;

? password — строка, содержащая пароль, который будет использован в случае, когда производится запрос с обязательной аутентификацией;

? processData — булево значение, которое определяет, необходимо ли производить обработку отправляемых данных из объектного представления в строковое. По умолчанию установлено processData=true;

? success — определяет функцию, которая будет вызвана в случае, если запрос успешно завершится. Функция принимает два параметра: объект, содержащий полученные от сервера данные, и строковое значение, указывающее статус результата запроса;

? timeout — числовое значение, которое определяет время ожидания ответа от сервера, по истечении которого запрос будет считаться завершившимся с ошибкой;

? type — строка, определяющая типа запроса (GET или POST), по умолчанию type="GET";

? url — строка, определяющая адрес, к которому отправляется запрос. По умолчанию подразумевается текущая страница;

? username — строка, определяющая имя пользователя, которое будет использовано в случае, когда производится запрос с обязательной аутентификацией;

? xhr — определяет функцию, которая должна создавать объект XMLHttpRequest. По умолчанию функция создает такой объект через ActiveXObject, если это возможно, если нет, то используется объект XMLHttpRequest. Вы можете переопределить эту функцию для собственной реализации создания объекта XMLHttpRequest.

Как можно заметить, функция jQuery.ajax обладает очень большим количеством настроек. Однако, в связи с тем, что практически все они имеют значения по умолчанию, использование jQuery.ajax не представляет собой особой сложности. Так, далее представлен вариант запроса значения даты и времени с сервера с помощью jQuery.ajax:

<script type="text/javascript">
  function GetTime() {
    $.ajax({
      url: 'Home/GetTime',
      success: function(result) {
        $('#timeText').text('Bpeмя на сервере: ' + result);
      },
      dataType: 'text'
    });
  }
</script>

При всем перечисленном количестве возможных параметров для функции jQuery.ajax использование ее не вызывает труда. Достаточно указать всего лишь три параметра: адрес, обработчик результата и ожидаемый тип результата. Этого достаточно в нашем случае для простейшего асинхронного запроса.

Оглавление книги


Генерация: 2.007. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз