jQuery - Ajax

AJAX - это аббревиатура, обозначающая асинхронный JavaScript и XML, и эта технология помогает нам загружать данные с сервера без обновления страницы браузера.

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

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

Загрузка простых данных

С помощью JQuery AJAX очень легко загрузить любые статические или динамические данные. JQuery предоставляетload() способ сделать работу -

Синтаксис

Вот простой синтаксис для load() метод -

[selector].load( URL, [data], [callback] );

Вот описание всех параметров -

  • URL- URL-адрес серверного ресурса, на который отправляется запрос. Это может быть сценарий CGI, ASP, JSP или PHP, который генерирует данные динамически или из базы данных.

  • data- Этот необязательный параметр представляет объект, свойства которого сериализованы в правильно закодированные параметры, передаваемые в запрос. Если указано, запрос выполняется с использованиемPOSTметод. Если опущено,GET используется метод.

  • callback- Функция обратного вызова, вызываемая после загрузки данных ответа в элементы согласованного набора. Первый параметр, передаваемый этой функции, - это текст ответа, полученный от сервера, а второй параметр - это код состояния.

пример

Рассмотрим следующий HTML-файл с небольшой кодировкой JQuery -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               $('#stage').load('/jquery/result.html');
            });
         });
      </script>
   </head>
	
   <body>
      <p>Click on the button to load /jquery/result.html file −</p>
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
   </body>
</html>

Вот load() инициирует запрос Ajax на указанный URL /jquery/result.htmlфайл. После загрузки этого файла все содержимое будет заполнено внутри <div> с тегом ID stage . Предположим, наш файл /jquery/result.html имеет только одну строку HTML -

<h1>THIS IS RESULT...</h1>

Когда вы нажимаете данную кнопку, загружается файл result.html.

Получение данных JSON

Может возникнуть ситуация, когда сервер вернет строку JSON против вашего запроса. Служебная функция JQuerygetJSON() анализирует возвращенную строку JSON и делает полученную строку доступной для функции обратного вызова в качестве первого параметра для выполнения дальнейших действий.

Синтаксис

Вот простой синтаксис для getJSON() метод -

[selector].getJSON( URL, [data], [callback] );

Вот описание всех параметров -

  • URL - URL-адрес ресурса на стороне сервера, к которому осуществляется связь с помощью метода GET.

  • data - Объект, свойства которого служат парами имя / значение, используемыми для создания строки запроса, добавляемой к URL-адресу, или предварительно отформатированной и закодированной строки запроса.

  • callback- Функция, вызываемая после завершения запроса. Значение данных, полученное в результате переваривания тела ответа в виде строки JSON, передается в этот обратный вызов в качестве первого параметра, а статус - в качестве второго.

пример

Рассмотрим следующий HTML-файл с небольшой кодировкой JQuery -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
				
               $.getJSON('/jquery/result.json', function(jd) {
                  $('#stage').html('<p> Name: ' + jd.name + '</p>');
                  $('#stage').append('<p>Age : ' + jd.age+ '</p>');
                  $('#stage').append('<p> Sex: ' + jd.sex+ '</p>');
               });
					
            });
         });
      </script>
   </head>
	
   <body>
      <p>Click on the button to load result.json file −</p>
		
      <div id = "stage" style = "background-color:#eee;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
   </body>
</html>

Здесь служебный метод JQuery getJSON() инициирует запрос Ajax на указанный URL result.jsonфайл. После загрузки этого файла все содержимое будет передано функции обратного вызова, которая, наконец, будет заполнена внутри <div> с тегом ID stage . Предположим, наш файл result.json имеет следующее содержимое в формате json:

{
   "name": "Zara Ali",
   "age" : "67",
   "sex": "female"
}

Когда вы нажимаете данную кнопку, загружается файл result.json.

Передача данных на сервер

Много раз вы собираете ввод от пользователя и передаете его на сервер для дальнейшей обработки. JQuery AJAX упростил передачу собранных данных на сервер, используяdata параметр любого доступного метода Ajax.

пример

Этот пример демонстрирует, как передать вводимые пользователем данные в сценарий веб-сервера, который отправит тот же результат обратно, и мы его распечатаем -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               var name = $("#name").val();
               $("#stage").load('/jquery/result.php', {"name":name} );
            });
         });
      </script>
   </head>
	
   <body>
      <p>Enter your name and click on the button:</p>
      <input type = "input" id = "name" size = "40" /><br />
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Show Result" />
   </body>
</html>

Вот код, написанный на result.php сценарий -

<?php
   if( $_REQUEST["name"] ){
      $name = $_REQUEST['name'];
      echo "Welcome ". $name;
   }
?>

Теперь вы можете ввести любой текст в данное поле ввода, а затем нажать кнопку «Показать результат», чтобы увидеть, что вы ввели в поле ввода.

Методы JQuery AJAX

Вы ознакомились с базовой концепцией AJAX с использованием JQuery. В следующей таблице перечислены все важные методы JQuery AJAX, которые вы можете использовать в зависимости от ваших потребностей в программировании.

Sr. No. Методы и описание
1 jQuery.ajax (параметры)

Загрузите удаленную страницу с помощью HTTP-запроса.

2 jQuery.ajaxSetup (параметры)

Установите глобальные настройки для запросов AJAX.

3 jQuery.get (URL, [данные], [обратный вызов], [тип])

Загрузите удаленную страницу с помощью HTTP-запроса GET.

4 jQuery.getJSON (URL, [данные], [обратный вызов])

Загрузите данные JSON с помощью HTTP-запроса GET.

5 jQuery.getScript (URL, [обратный вызов])

Загружает и выполняет файл JavaScript с помощью запроса HTTP GET.

6 jQuery.post (URL, [данные], [обратный вызов], [тип])

Загрузите удаленную страницу с помощью запроса HTTP POST.

7 load (url, [data], [callback])

Загрузите HTML из удаленного файла и вставьте его в DOM.

8 сериализовать ()

Сериализует набор входных элементов в строку данных.

9 serializeArray ()

Сериализует все формы и элементы форм, такие как метод .serialize (), но возвращает структуру данных JSON, с которой вы можете работать.

События JQuery AJAX

Вы можете вызывать различные методы JQuery в течение жизненного цикла выполнения вызова AJAX. На основе различных событий / этапов доступны следующие методы -

Вы можете просмотреть все события AJAX .

Sr. No. Методы и описание
1 ajaxComplete (обратный вызов)

Присоедините функцию, которая будет выполняться при завершении запроса AJAX.

2 ajaxStart (обратный вызов)

Прикрепите функцию, которая будет выполняться всякий раз, когда начинается запрос AJAX, и ни один из них еще не активен.

3 ajaxError (обратный вызов)

Прикрепите функцию, которая будет выполняться при сбое запроса AJAX.

4 ajaxSend (обратный вызов)

Присоедините функцию, которая будет выполняться перед отправкой запроса AJAX.

5 ajaxStop (обратный вызов)

Прикрепите функцию, которая будет выполняться после завершения всех запросов AJAX.

6 ajaxSuccess (обратный вызов)

Прикрепите функцию, которая будет выполняться всякий раз, когда запрос AJAX завершается успешно.