Классический asp – когда использовать Response.flush?

StackOverflow https://stackoverflow.com/questions/135365

  •  02-07-2019
  •  | 
  •  

Вопрос

У нас ужасно медленный отчет. Я добавил Response.flush, и он кажется намного лучше.Каковы некоторые предостережения при использовании этого метода?

Это было полезно?

Решение

Если для Response.Buffer не установлено значение true, вы получите ошибку во время выполнения.Кроме того, если метод Flush вызывается на странице ASP, сервер не обрабатывает запросы Keep-Alive для этой страницы.

Вам также следует обратить внимание, используете ли вы дизайн на основе таблиц, поскольку он не будет отображаться в некоторых браузерах, пока не будет отправлена ​​вся таблица.это означает, что если у вас есть 10 000 строк, пользователю все равно придется ждать передачи всех 10 000 строк, прежде чем он действительно их увидит.

Другие советы

Расширение Ответ Уэйна:если для чего-либо вам необходимо установить Response.Headers, вы не сможете сделать это после того, как какая-либо часть ответа будет очищена.

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

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

Вам следует избегать слишком частой очистки, так как IIS тогда придется использовать ресурсы для частой очистки страницы вместо обработки сценария.То есть:сбрасывать каждые 50 строк, а не каждую строку.

Response.flush может быть полезен для отправки в браузер заголовка отчета.затем отобразите «сообщение о загрузке», затем обработайте отчет, и вы очистите отчет, затем выполните небольшой фрагмент javascript, чтобы скрыть сообщение «загрузка».

Таким образом, вы сообщите своим пользователям, что что-то происходит, и они не будут нажимать СТОП НАЗАД или просто закрывать окно, поскольку в противном случае у них может возникнуть искушение.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top