Когда следует отключить буферизацию JSP?
Некоторая документация на веб-сайте Oracle ( http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm, 3.1.12 Отключение буфера страниц JSP, если не используется) гласит:
Если вы не используете какие-либо функции JSP, требующие буферизации, вы можете отключить их для повышения производительности; память не будет использоваться при создании буфера, а вывод может идти напрямую в браузер. Вы можете использовать следующую директиву для отключения буферизации:
<%@ page buffer="none" %>
Однако я не смог найти никакой документации, которая бы указывала, что именно является "функциями JSP, требующими буферизации". Я обычно понимаю, при каких обстоятельствах уменьшение или увеличение буфера может или не может помочь производительности, но я не знаю, какие функции "требуют" буферизации.
При каких обстоятельствах вы должны отключить буферизацию и / или при каких обстоятельствах вы НЕ должны выключать буферизацию?
1 ответ
На самом деле, у меня просто был "дух" момент. Есть вещи, которые вы можете сделать в JSP, которые манипулируют заголовками, возвращенными с ответом, например: response.setHeader(...)
или же <jsp:forward />
, Это, очевидно, всегда должно происходить до того, как ответ будет принят, и данные начнут поступать к клиенту. Если вы отключите буферизацию, вы никогда не сможете установить заголовки или использовать метку пересылки, что может или не может быть желательно, потому что данные начнут немедленно передаваться клиенту. Я не знаю, почему я просто не подумал об этом...
В основном это сводится к тому, важнее ли производительность, чем потеря возможности устанавливать заголовки или использование тега forward. Если это так, вы хотите отключить буферизацию. Если важно установить заголовки или использовать метку пересылки, лучше оставить буферизацию включенной.
Если кто-то сможет исправить меня или опубликовать лучший ответ в ближайшие два дня, я с радостью приму его вместо ответа.