Суббота, 12.07.2025, 13:51
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Тесксты от Автора [1]
Тесксты от Автора
Интересные статьи по программированию [2]
Интересные статьи по программированию, а также веб разработки
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2013 » Февраль » 28 » Асинхронные запросы, ajax
23:32
Асинхронные запросы, ajax
  

Асинхронные запросы - жутко звучащая формулировка, особенно для новичка в области программирования, позволяют освободить пользователя от мельтешащих обновлений страницы и реализуют работу с сайтом в пределах одной страницы, блоки которой обновляются в зависимости от действий пользователя. В общем-то на выходе всё прекрасно и уместно, правда осуществление данного механизма на сайте не так проста, как думается. Давайте перейдем к рассмотрению базовых знаний необходимых для создания асинхронных запросов. Может даже кому-то станет потешно, но желательно понимание HTML :), следом нужно ведать javascript, после необходимы знания в php и, (само собой) разумеется же MySQL. С точки зрения программирования, план работы асинхронного запроса будет выглядеть следующим образом:

1. юзер на странице активирует нажатием какой-либо зрительный компонент, что в свою черед влечет к выполнению пункта 2;

2. активирование визуального элемента сайта приводит к вызову javascript функции [ajax_request], в которой и происходит разновременный запрос к веб серверу;

3. сервер, приняв задание, анализирует его, выполняет все необходимые действия и отдает отклик, "Выкрикивая" его с помощи функций echo или print;

4. отзыв сервера приходит в [ajax_request] и происходит обработка ответа от веб сервера;

5. спустя время, после обработки ответа, информация выводятся на экран используя атрибут .innerHTML dom элементов страницы.

Я обязан остеречь Вас от реализации данного механизма для полной навигации по сайту, этот вид навигации повлечет за собой неимение истории в браузере, что дико отрицательно будет воспринято 99% процентами пользователей, соответственно, этот приём и вообще асинхронные запросы вернее использовать в формах проверки данных, при поиске, или же в полях подсказок, а также в некоторых других случаях. 

Реализация функции ajax_request:
JAVASCRIPT
**************************************************************
function ajax_request ()
{
   // Вызов функции инициализации объекта XMLHttpRequest
   // REQUEST
   var request = CreateRequest();
   //***************** запрос отправляется вручную.
   USER_ID=1; 
   message ="hello";
   // URL для подключения
   var url = "agregator.php?task=ADD_MESSAGE&MSG=" +message + "&RECIEVER_ID="+USER_ID+"&random="     + Math.random(); // random (случайное число) - чтобы не было глюков с кешированием
   request.open("GET", url, true);
   request.onreadystatechange = updatePage;
   request.send(null);
   function updatePage()
   {
      if (request.readyState == 4)
         if (request.status == 200)
         {
               // Вызов функции обработки ответа и передача ей ответа
                tmp=request.responseText;
                document.getElementById('MSG').innerHTML=tmp; // помещаем ответ сервера в эелемент MSG
                delete request;
         }
         else
        {
            alert("Сервер не ответил");
         }
   }
}

function CreateRequest()
{
   request = new XMLHttpRequest();
   try {
   request = new XMLHttpRequest();
   } catch (trymicrosoft) {
   try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (othermicrosoft) {
   try {
   request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
   request = false;
   }
   }
   } if (!request) { alert("Ошибка инициализации XMLHttpRequest! Возможно\n" +
   "ваш браузер не поддерживает этот объект.");
   }
return request;
}
****************************************************************
***PHP***
$task=$_GET['task'];
switch ($task)
{

   case "
ADD_MESSAGE ":
       $ID=$_GET['
RECIEVER_ID '];
       $message=
$_GET[' MSG '];
       RecordMSG( $message );
       echo "Сообщение записано!";
       break;
}

*********
***HTML***
<div id=' MSG '></div>  
В этом элементе появится ответ сервера.
**********



Категория: Интересные статьи по программированию | Просмотров: 2184 | Добавил: Kamillorn | Теги: php, mysql, Асинхронные запросы, HTML, сайт, javascript | Рейтинг: 0.0/0
Всего комментариев: 2
2 Zulu12  
0
А я вот смог похудеть благодаря методике кефирной диеты! Вот как!
Вот тут описанно про это http://hudeemstoboy.blogspot.ru/ супер кефирная диета.

1 Kamillorn  
0
Очень интересно было прочитать! Спасибо!

Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Календарь
«  Февраль 2013  »
Пн Вт Ср Чт Пт Сб Вс
    123
45678910
11121314151617
18192021222324
25262728
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz