webasyst alpha

  • Фреймворк
  • Приложения
  • Помощь
  • Блог
  • Скачать
  • Демо
  • Возможности
  • Лицензия
  • Документация Webasyst
    • Введение
    • Установка
    • Создание сайта
      • Пример: создание сайта
      • Сайты и маршрутизация
      • Шаблоны и темы оформления
      • Страницы и общие блоки
    • Разработка приложений
      • Пример: приложение «Гостевая книга»
      • Приложение-пустышка
      • Файловая структура
      • Конфигурационные файлы
      • Шаблоны
      • Интерфейс
      • База данных
      • Правила и рекомендации по именованию
      • Маршрутизация в бекенде
      • Маршрутизация во фронтенде
      • Экшены и контроллеры
      • Композитные макеты
      • Права доступа
      • AJAX
      • Переменные окружения
      • Сессии
      • Локализация
      • Мобильная версия
      • Работа с почтой
      • Работа с изображениями
      • Загрузка файлов на сервер
      • Журнал действий пользователя
      • Интеграция с приложением «Сайт»
      • Интеграция с приложением «Контакты»
      • Действия по расписанию
      • Адаптеры авторизации
      • Плагины
    • Настройки сервера
      • Nginx + FastCGI
      • Настройка Cron

AJAX

Большинство современных веб-приложений активно использует механизм AJAX. В системном классе фреймворка waRequest есть метод isXMLHttpRequest(), определяющий, получен ли запрос от AJAX-приложения:

waRequest::isXMLHttpRequest()  //возвращает true для AJAX-запросов, в противном случае — false

Иногда формирование содержимого страницы в браузере выполняется только средствами JavaScript. В этом случае с сервера снимается задача генерации HTML-кода с использованием шаблона, а реализация слоя «вид» в терминологии MVC перемещается на клиента. При этом вместо формирования HTML-кода перед сервером встаёт другая задача — передача данных клиенту. Во фреймворке в качестве удобного формата передачи данных для обработки JavaScript-кодом используется JSON.

Для упрощения передачи данных в браузер в виде структур JSON во фреймворке реализованы базовые классы waJsonActions, и waJsonController. Когда необходимо передать в браузер данные в формате JSON вместо HTML-кода, необходимо создать класс экшена или контроллера, унаследованный от одного из этих базовых классов. Названия методов, реализующих логику обработки запроса, должны подчиняться тем же правилам, что и названия методов для экшенов и контроллеров, наследуемых от классов waViewActions и waViewController.

PHP-массив данных, помещенный в поле контроллера response, автоматически конвертируется в JSON-структуру и передаётся в браузер, например:

<?php

class someAppAjaxActions extends waJsonActions
{
  ...
  function testAction()
  {
    ...
    $this->response = array(
      'valA' => 'value first',
      'valB' => 'velue second',
    );
  }
}

Результатом выполнения вышеприведенного экшена будет JSON-массив:

{
  "status":"ok",
  "data":{
  	"valA":"value first",
  	"valB":"velue second"
  }
}

Простой пример вызова такого экшена из JavaScript:

$.getJSON('?module=ajax&action=test', function (json) {
	alert(json.data.valA);
});
  • О компании
  • Фреймворк и WebAsyst.ru
    • Language
      • Русский
      • English

© 2011 Webasyst