Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как очистить буфер ответов в ColdFusion?

Автор вопроса: LarsenalОтветов: 3

Я ищу что-то вроде Response.Clear().

  • GetPageContext().getCFOutput().clear() и ‹cfcontent reset=true /› оба верны. Aaron Greenlee 14.09.2010
  • Если бы только SO позволил мне принять два ответа... Larsenal 14.09.2010

coldfusion

Ответы

Ответ 1 · рейтинг 12 · jfrobishow

Это очистит тело ответа и предотвратит вывод буферизованного содержимого.

<cfset GetPageContext().getCFOutput().clear()>

Ответ 2 · рейтинг 29 · Edward M Smith

Вы можете сбросить буфер вывода с помощью cfcontent с аргументом сброса:

<cfcontent reset="true">

Ответ 3 · Ryan Cogswell

Два существующих ответа (<cfset GetPageContext().getCFOutput().clear()> и <cfcontent reset="true">) будут сбрасывать буфер основного содержимого, но эти команды не будут сбрасывать буферы заголовков (то есть содержимое, которое ColdFusion автоматически вставляет в элемент <head>, например теги <script> при использовании <cfchart>).

Чтобы сбросить все, вы можете использовать любой из следующих подходов:

<cfcontent reset="true" resethead="true">

or

<cfset getPageContext().getCFOutput().clearAll()>
<cfset getPageContext().getCFOutput().clearHeaderBuffers()>

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

Связанный ответ: Есть ли способ предотвратить принудительное использование js в содержимом ответа cfchart?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы