Что такое чанки в программировании
Перейти к содержимому

Что такое чанки в программировании

  • автор:

MODx/Терминология

MODx это очень гибкая система управления контентом и она может быть настроена множеством разных способов.

Наши новые пользователи могут быть сбиты с толку терминологией, но на практике эта терминология достаточно распространена.

У редактора контента есть два способа, чтобы добавить содержимое на сайт:

  • в специальную область для контента
  • в другие области, которые мы называем Переменные уровня документа (обычно это боковые блоки информации, но это могут быть любые элементы веб-страницы).

Также есть два других важных отличительных понятия MODx, о которых вам следует знать:

  • Чанки (Chunks) — это часто используемые фрагменты HTML-кода. Вы можете использовать Чанки как в специальной области для контента, так и как часть переменных уровня документа. Например, вы можете поместить свою контактную информацию в тело Чанка, а затем вставлять этот Чанк везде где вам требуется без необходимости писать её каждый раз заново.
  • Сниппеты (Snippets) — это небольшие части вашей веб-страницы, требующие некоторой динамики. Например, меню или форма поиска. Сниппеты могут быть использованы как в рамках Шаблона, или в специальной области контента, в составе Чанков или как Переменные уровня документа.

И Чанки, и Сниппеты могут быть добавлены сразу в шаблон вашим веб-разработчиком, или вы можете сами добавить их потом, когда будете заполнять специальную область для контента или создать Переменные уровня документа.

А теперь все сказанное вместе. Для примера рассмотрим абстрактный сайт:

  • В шаблоне заданы основы функциональности веб-страниц вашего сайта. Ваш веб-разработчик может определить где должен располагаться контент общий для каждой веб-страницы сайта. В нашем примере это заголовок и логотип, которые закреплены в шаблоне на специальных местах.
  • У шаблона есть специальная область для контента, помеченная на картинке фиолетовой рамкой, контент добавляется с помощью специальной Переменной уровня документа простым вызовом [*content*]. Содержимое документа заполняется в интерфейсе редактора контента.
  • Шаблон содержит и специальные тэги MODx для вставки Сниппетов. В нашем примере это два Сниппета, помечены синей рамкой, они добавлены в шаблон вызовом [[ИмяСниппета]]
  • Также в примере используются специальные переменные шаблона, которые позволяют вам вставить текст, картинку или любой другой элемент страницы, которые не должны располагаться в основной области для контента. На картинке эти элементы помечены зеленой рамкой и добавятся они в шаблон вызовом [*ИмяПеременнойШаблона*]
  • Редактор сайта может вставить предопределенные части текста или HTML-кода в область контента или в тело переменных шаблона, это Чанки. В нашем примере есть два Чанка, они помечены красным цветом. Чанки добавляются редактором контента через редактирование области контента или вставляя их в тело переменных шаблона.

Изучаем потоки, чанки и ищем конец

Примечание: ниже перевод статьи «On Streaming, Chunking, and Finding the End», в которой авторы рассматривают процесс передачи информации по HTTP-соединению и возможности для ускорения этого процесса. Мои комментарии далее курсивом.

Два способа передачи

Как и в большинстве механизмов передачи данных, в HTTP существует два основных способа отправить сообщение: «все и сразу» или «по частям». Другими словами, в HTTP есть возможность отправлять данные до тех пор, пока еще есть хотя бы что-то, что можно отправить, либо отправить все данные как одну логическую единицу, указав предварительно ее размер.

Если вы занимаетесь веб-разработками достаточно продолжительное время, скорее всего, вы уже знаете, как работает сброс буфера (flush) на стороне сервера. Этот метод позволяет начать отправку части данных пользователю, в то время как скрипт может продолжать выполнять некоторые, достаточно медленные, действия (скажем, ресурсоемкий запрос к базе данных). Если вы уже применяли эту возможность, тогда вы, вероятно, использовали преимущества потокового (streaming) механизма, хотя могли и не знать всех деталей работы HTTP-протокола.

Что такое чанк

Чанк в MODx — это небольшой кусок HTML-кода или другой информации, который можно многократно использовать в шаблоне, другом чанке или сниппете.

Как правило в шаблонах используется несколько чанков, которые содержат совпадающее оформление. Например можно вынести шапку, подвал, основное меню, крошки. Благодаря этому изменения можно будет вносить в одном чанке, а не нескольких шаблонах. Это и проще и нет риска оставить какой-то шаблон без важного изменения.

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

Пример содержимого чанка с плейсхолдерами:

Кроме указанных двух вариантов, чанк можно использовать для хранения какой-то специальной информации. Например можно хранить некий набор параметров для сниппета (допустим список файлов), который может формироваться вручную или другими средствами MODx.

Создание и редактирование чанка

Все чанки находятся в следующем месте:

Ресурсы → Управление ресурсами → Чанки Список чанков выглядит примерно так:

Список чанков в MODX EVO

Для создания необходимо нажать на ссылку Новый чанк, а для редактирования существующего чанка достаточно нажать на ссылку с его названием. Появится следующая форма:

Новый чанк в MODX EVo

Название чанка — используется для вызова чанка. Можно использовать как английский так и русский язык, а также дефис (-) и знак подчеркивания (_). Пробел использовать нельзя!

Описание — выводится рядом с названием чанка в общем списке. Используется только для описания назначения чанка и для заполнения не обязательно.

Создать категорию — позволяет выбрать существующую категорию, в которую будет помещен чанк. Категория позволяет отделить чанк от остальных в общем списке. Если ни одна категория не выбрана, то чанк попадет в общую категория Без категории.

Новая категория — если в списке существующих категорий нет подходящей, то можно создать ее просто написав название в этом поле.

Ограничить доступ к редактированию чанка — если включить флажок, то никто кроме администраторов не сможет редактировать этот чанк.

Код чанка (html) — сюда размещается само содержимое чанка.

Редактор — позволяет выбрать визуальный редактор. По умолчанию он отключен, но при необходимости можно включить. Есть также редакторы, которые позволяют подсветить синтаксис.

Обратим внимание на возможности при сохранении. Для этого есть следующие управляющие кнопки:

Управление чанком в MODX EVO

С основными кнопками все понятно:

Сохранить — создаст новый чанк

Отмена — вернет нас в список чанков без сохранения результата.

Сделать копию — появляется только в режиме редактирования. Смотрите пункт Создание копии чанка.

Удалить — появляется только в режиме редактирования. Смотрите пункт Удаление чанка.

Но MODx позволяет определить еще действие после сохранения чанка:

Создать новый — сразу после сохранения чанка откроется форма для создания нового. Таким образом можно быстро создать серию чанков.

Продолжить редактирование — после сохранения чанк снова откроется для редактирования. В этом режиме удобно вносить небольшие правки в чанк и проверять конечный результат.

Закрыть — после сохранения мы вернемся в общий список чанков.

Создание копии чанка

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

Управление чанком в MODX EVO

На всякий случай система попросит от вас подтверждение:

Копия чанка в MODX EVO

После этого откроется для редактирования копия чанка. Копия отличается тем, что к ее названию добавляется Duplicate of. Вам остается только исправить название на более подходящее и внести другие необходимые правки.

Копия создается сразу после подтверждения, поэтому если вы нажмете отмену, то в списке чанков копия все равно останется.

Для удаления необходимо зайти в режим редактирования соответствующего чанка и нажать кнопку Удалить.

Управление чанком в MODX EVO

После этого система попросит от вас подтверждение:

Внимание! Чанки удаляются полностью и возможности их восстановить нет.

В шаблоне и другом чанке

Существующий чанк в шаблоне (или другом чанке) вызывается очень просто. Для этого используется конструкция в виде названия чанка окруженного фигурными скобками:

> При этом стоит помнить, что название чувствительно к регистру (НазваниеЧанка и названиеЧанка — разные чанки с точки зрения MODx).

Что такое «чанки»? — Node.js — Ответ 14760852

Лучший ответ

Сообщение было отмечено Peskova_Sveta как решение

Решение

чанк — часть чего-либо. сумма всех чанков = нечто целое.

Примеры:
1) представим что есть некий js код для фронтенда, исходники. при компиляции «целый исходный код» может быть раздроблен на части (чанки) для разных, например, страниц. Т.е. на главной странице будет загружен чанк с кодом для главной страницы. Перейдя на страницу контактов будет подгружен чанк, относящийся к странице контактов. Так же может быть создан чанк который будет содержать код, который будет использоваться на всех страницах, при этом этот чанк не будет повторяться в других.. (ну т.е. если код попал в один из чанков, он никогда не будет в другом чанке).

2) если рассмотреть пример с чтением файлов в ноде, то при использовании event emitter’a мы будем получать событие, которое будет тригерить эвент с «частью прочитаном в файле». Ну т.е. мы говорим что-то типо

1 2 3 4
const eventEmitter = fs.read('file.txt'); let file = ''; eventEmitter.on('data', (chunk) => file += chunk); eventEmitter.on('end', () => console.log('file', file));

чтение файла в данной ситуации происходит «частями» (чанками) где первый чанк это начало файла который мы читаем, а последний — конец файла.. он может быть ограничен каким-то определённым кол-вом байт и т.п., но суть в том, что это часть файла который мы читаем, а сумма (по порядку) всех чанков = содержимому файла который мы читаем.

Меню пользователя @ muxahuk1214

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *