AJAX

от Уикипедия, свободната енциклопедия

AJAX е похват в уеб разработките за създаване на интерактивни уеб приложения. Идеята е уеб страниците да станат по-впечатляващи чрез асинхронен обмен на на малки порции данни „зад кадър“, така че да не бъде необходимо да се презарежда цялата страница отново. По този начин се повишава интерактивността, скоростта и функционалността на страниците.

AJAX техниката се използва като комбинация от:

  • XHTML (или HTML) и CSS за форматиране и ошрифтяване на текста.
  • DOM (Document Object Model) реализиран чрез програмиране от стрна на клиента с помощта на езици като JavaScript и JScript за динамична визуализация и интерактивност на предоставената информация.
  • XMLHttpRequest обекта за обмяна на данни асинхронно с уеб сървър. В някои случаи се използва IFrame обекта наместо XMLHttpRequest.
  • XML в някои случаи е използвания формат за трансфер на данни между сървър и клиент. Все пак всеки формат е удачен, включително преформатиран HTML, чист текст, JSON и др.

Сам по себе си AJAX не е технология, а термин за употребата на група технологии. За първи път се споменава февруари 2005 г. от Джеси Джеймс Гарет в статията му „Ajax: A New Approach to Web Applications“.

[редактиране] Пример за използването на AJAX

Javascript

function makeRequest() {
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
     http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
           http_request.overrideMimeType('text/xml'); // Фиксиране на някои проблеми
        }
  }
  else if (window.ActiveXObject) { // IE
       try {
          http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
  }
  if (!http_request) {
     alert('Възникна проблем при създаването на XMLHTTP връзка');
     return false;
  }
  return http_request;
}
function testAJAX() {
  var http_request = makeRequest();
  var info = "Някаква информация";
  var url = 'link/to/server/file/ajax.php?test=' + info;
  http_request.open('GET', url, true);
  http_request.onreadystatechange = function() { testResponse(http_request); };
  http_request.send(null);
}
function testResponse(http_request) {
  if (http_request.readyState == 4 || http_request.readyState == 'complete') { // Проверка...
     if (http_request.status == 200) { // Втора проверка...
        alert(http_request.responseText); // Действие с получената информация
     }
     else {
        alert('Има проблем с получаването на информация');
     }
  }
}

PHP

<?php
  if (isset($_GET['test'])) {
     echo "Връщане на информация";
  }
?>