Статьи

Подавление пустого пространства

… опубликовано :

На выходных мне довелось работать над проектом с другим разработчиком, и он написал мне по электронной почте о проблеме с пользовательским тегом, который он использовал. Он сказал, что в его документах было слишком много пустого пространства. Фактически, документ со всем пустым пространством в нем был около 40 КБ, в отличие от документа без пробелов около 16 КБ. Хлоп!

Причина этого заключается в том, что при выполнении страницы сервер должен преобразовать CFML в p-код, который исполняется сервером приложений. В преобразовании CFML становится пробелом.

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

Лучший способ, который я обнаружил для подавления пробелов, — это зайти в ColdFusion Administrator, перейти на страницу настроек и нажать «Включить подавление пробелов». Это значительно уменьшит размер ваших страниц, особенно если вы делаете что-то интенсивное с базой данных, где у вас большие запросы. Это также сделает ваш код более читабельным.

Я знаю, что есть способы сделать это в коде, используя cfprocessingdirective, cfsetting и cfsilent, но с возможностью установить это на самом сервере, я действительно не вижу никакой причины делать это в коде. Даже если вы находитесь на общем хосте, вы должны отправить им электронное письмо и попросить их внести это небольшое изменение для вас. Это уменьшит используемую пропускную способность, и они смогут сделать это для вас без проблем. (Если вас спросят, что такое администратор ColdFusion, найдите другого хоста!)

Больше информации об отображении результатов в книге Программирование ColdFusion OReilly. В главе 11 вы захотите посмотреть.

В качестве примечания, я немного осмотрелся, чтобы выяснить, оказывает ли заметное влияние включение подавления пробелов на производительность сервера, и я не видел там ничего об этом. Я мог видеть, как это могло бы немного замедлить его, так как теперь оно должно очищать после себя, но также кажется, что это может ускорить совсем немного, так как он имеет дело с меньшим количеством данных с точки зрения памяти … Если у кого-нибудь есть ссылки на этот вопрос, мне было бы интересно их увидеть