ГлавнаяБлогBitrix AJAX [bitrix-ajax-api]

Bitrix AJAX [bitrix-ajax-api]

Рамиль Юналиев
Рамиль Юналиев
E-Commerce Lead
9 февраля 2010 г.
1 мин чтения

Многие разработчики предпочитают jQuery, но знание нативного AJAX API Битрикс полезно при работе с платформой.

HTML

<a href='#' onclick='goAjax(); return false;'>Go</a>
<div id='container'></div>

Серверный обработчик (ajax.handler.php)

header('Content-Type: text/html; charset=windows-1251');
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
CModule::IncludeModule('iblock');
define("STOP_STATISTICS", true);
 
echo '<pre>', print_r($_GET).'</pre>';

define("STOP_STATISTICS", true) исключает AJAX-запросы из статистики.

JavaScript

function goAjax()  
{  
  function fvoid(data)  
  {  
    jsAjaxUtil.CloseLocalWaitWindow();  
    document.getElementById('container').innerHTML = data;  
  }
 
  jsAjaxUtil.ShowLocalWaitWindow();  
  var TID = CPHttpRequest.InitThread();  
  CPHttpRequest.SetAction(TID, fvoid);  
  CPHttpRequest.Send(TID, 'ajax.handler.php', {'param':'test_param'});  
}

Ключевые функции

  • CPHttpRequest.InitThread() — инициализирует поток запроса
  • CPHttpRequest.SetAction(TID, callback) — задаёт callback-обработчик
  • CPHttpRequest.Send(TID, url, params) — отправляет GET-запрос
  • CPHttpRequest.Post(TID, url, params) — отправляет POST-запрос
  • jsAjaxUtil.ShowLocalWaitWindow() — показывает индикатор загрузки
  • jsAjaxUtil.CloseLocalWaitWindow() — скрывает индикатор загрузки

Перед использованием необходимо вызвать CAjax::Init() для инициализации клиентской библиотеки.

Вывод

Для новых проектов лучше рассмотреть современные фреймворки, например jQuery. Нативный Bitrix AJAX удобен при работе с уже существующими сайтами на платформе.