Как выдавать JSON побыстрее?

Главные вкладки

Аватар пользователя fairrandir fairrandir 16 марта 2017 в 17:18
1

Дано: Drupal 7, график, который надо строить на основе небольшого json, получаемого с сервера.

Проблема - получать json надо быстро. Через hook_menu - бустрапится весь друпал, хотя нужна одна запись из одного SQL-запроса по одной таблице.

Вопрос: как максимально шустро получать данные? Пока самый простой вариант, который вижу - делать запросы вообще мимо друпала, просто из своего файлика в корне. Второй вариант - какой-то промежуточный кэш. Но это чё-то как-то не так.

Модуль js пробовал, но он какой-то сильно недружелюбный для клиентского кода, т.е. в нём нельзя тупо $.get() на урл использовать.

Комментарии

Аватар пользователя bumble bumble 16 марта 2017 в 19:15

fairrandir wrote:

.. делать запросы вообще мимо друпала, просто из своего файлика в корне.

Вариант, но сцыкотно ))... Как минимум, нужно будет реализовать защиту от всяческих инъекций. Да и не "наш метод" это.

fairrandir wrote:

Модуль js пробовал, но он какой-то сильно недружелюбный для клиентского кода, т.е. в нём нельзя тупо $.get() на урл использовать.

Я не работал с этим модулем, но давно на него смотрю. По идее (из прочитанного) - все должно работать. Если не секрет - покажите как реализовываете коллбеки. Там не просто хук_меню должен быть, а свои:

  • HOOK_js_info
  • и соответственные ему HOOK_js_callback_CALLBACK 'и.

Возможно не указана проверка доступа к коллбеку:

 27  *   - access callback: (optional) The function to invoke for determining        
 28  *     access to the callback. If set, the minimum bootstrap level must be      
 29  *     DRUPAL_BOOTSTRAP_SESSION to ensure proper access validation against the  
 30  *     current user. WARNING: If not set, no access checks are performed at all.
 31  *     Defaults to "user_access" if the below option (access arguments) has      
 32  *     a value.  

PS - Возможно есть смысл посмотреть в сторону REST.

Аватар пользователя fairrandir fairrandir 17 марта 2017 в 12:51

Модуль js - у меня заработал, просто не понравился. Smile Я думал, что он предоставляет свои аналоги hook_menu для запросов, а как выяснилось - он просто шлёт в POST-данных какой колбэк использовать, и все запросы идут на /js.
Мимикрировать это поведение в своём js - тот еще гемморой, документация не оч, по коду у них тоже сходу не понятно, как там эти идентификаторы высчитываются.

Ну нравится не нравится - пока модуль js заюзаю, а в сторону REST - смотрю, всё равно скоро понадобится.

Аватар пользователя fairrandir fairrandir 17 марта 2017 в 16:19

restful попробовал. Модуль клёвый. Документация ужасна - не вся, на две версии одновременно и, что самое страшное, врёт. Работает даже медленней, чем просто hook_menu. =\ Ну или не разобрался.

Пока заюзал модуль js. Может попозже пост-гайд запилю небольшой. Штука клёвая, но имхо кривоватая.