Snap: доступ к базе данных с помощью скомпилированных соединений

Я пытаюсь получить голову вокруг скомпилированных соединений. С помощью предыдущей помощи я могу скомпилировать и сделать некоторые полезные результаты. Я не до конца понимаю, как это работает.

В интерпретируемом режиме алгоритм прост: создайте корень, вызовите функцию-обработчик по заданному URL-адресу, извлеките данные из БД, скомпонуйте и свяжите сплайсинг из извлеченных данных, вставьте их в ограбление и вызовите соответствующий шаблон.

Это все с ног на голову в скомпилированном режиме. Я отображаю URL-адрес непосредственно в cRender и не вызываю обработчик. Поэтому я предполагаю, что все функции конструирования сплайсинга и обработки данных вызываются во время загрузки.

Итак, мой вопрос, когда база данных называется? Это происходит и во время загрузки? Это просто последовательность событий, которую я не понимаю.

Поскольку конструкция сплайсинга не зависит от конкретного рендеринга шаблона, означает ли это, что теги привязки сплайса уникальны во всем приложении? Они как глобальные переменные?

Спасибо

1 ответ

Решение

Да, вы в значительной степени правы. Хотя я бы не сказал, что они как глобальные переменные. Они больше похожи на глобальные константы или глобальный API. Я рассматриваю скомпилированные соединения как API, который ваш веб-дизайнер может использовать для взаимодействия с динамическими данными.

Скомпилированные соединения позволяют вставлять в разметку дыры, которые заполняются данными во время выполнения. Во время загрузки работающая монада HeistT n IO, Но во время выполнения бегущая монада RuntimeSplice n, Так что, если вы посмотрите на скомпилированный Heist API, очень легко увидеть, где должен находиться код времени выполнения, такой как функции базы данных: в RuntimeSplice n монада.

Другие вопросы по тегам