У меня есть карта, которая загружает маркеры через ajax на различных / многочисленных событиях карты. В настоящее время я определяю пользовательский обратный вызов страницы для моего hook_menu()
элемента, который печатает мой json / js.
Поскольку обратный вызов моей страницы не возвращает никакого содержимого и только печатает содержимое, Drupal не отображает полный шаблон, меню и т. Д., И, таким образом, позволяет мне возвращать страницу только с моим JavaScript.
Хотя это работает, я считаю, что Drupal по-прежнему полностью загружается, что означает, что он добавляет много накладных расходов, которые я хотел бы отбросить.
Я рассматривал высокопроизводительный обработчик обратного вызова JavaScript , который может похвастаться «высокопроизводительным обработчиком обратного вызова JavaScript» и, в общем, выглядит так, как будто он предлагает js.php
комплимент index.php
для направления ваших запросов и настройки / limit / оптимизировать загрузку по умолчанию делает Drupal.
К сожалению, проект js еще не выпустил D7 ( петиция за него здесь ), что приводит нас к началу ...
Какой самый быстрый способ реализовать обратный вызов Ajax в Drupal?
источник
Немного поздно, но особенно , если вы используете эту функцию обратного вызова AJAX для опроса (проверка на наличие новых сообщений, например), есть интересная альтернатива: Drupal Node.js интеграции .
Вместо опроса это позволяет вам создать систему, похожую на событие, где пользователи (также известные как JS на своей странице) поддерживают открытое соединение с вашим сервером node.js. Если что-то случится, вы можете напрямую уведомить всех пользователей через node.js.
источник
Поскольку вы хотите реализовать обратный вызов Ajax в Drupal , использование JS-модуля выглядит как хорошая ставка. Я просто быстро взглянул на код, и это в основном то, что я бы предложил (но с гораздо большим вниманием к деталям). Сопровождающий также является одним из ведущих разработчиков Drupal.
Похоже, вам придется использовать
module_load_include()
или, возможно, более ручнойinclude 'sites/all/modules/contrib/...';
подход, если вам нужно использовать API из других модулей.Самая проблема, о которой вы говорите, была в последнее время горячей темой. Основной доклад Дриса из DrupalCon Chicago рассказывал о том, что Drupal 8 нуждается в улучшенных API для выполнения обратных вызовов и выходных форматов, отличных от HTML.
источник