Серверный JavaScript 1.4. Руководство по использованию

       

Очистка Буфера Вывода


Для повышения производительности, JavaScript буферизует конструируемую им HTML-страницу. Функция flush сразу высылает данные из внутреннего буфера клиенту. Если Вы явно не вызываете функцию flush, JavaScript высылает данные клиенту после создания каждых 64KB содержимого конструируемой HTML-страницы.

Не путайте функцию flush с методом flush класса File. (Об использовании класса File для ввода и вывода в файл см. ).

Вы можете использовать flush для управления временем переноса данных клиенту. Например, Вы можете очищать буфер до операции, создающей задержку/delay, такой как запрос к базе данных. Также, если запрос к БД запрашивает большое количество рядов, очистка буфера каждый раз после получения нескольких рядов предотвращает паузы при отображении данных.

ПРИМЕЧАНИЕ:

Если Вы используете клиентские куки для обслуживания свойств объекта client, Вы обязаны делать все изменения объекта client до очистки буфера. Дополнительно см. .

Следующий фрагмент кода показывает, как используется flush. Предположим, Ваше приложение должно выполнить некоторые действия с каждым потребителем/customer в Вашей БД потребителей. Если потребителей много, процесс может затянуться. Поэтому, для того чтобы пользователь не ждал у застывшего экрана, Ваше приложение может высылать вывод клиенту до начала обработки и затем вновь - после конца обработки каждого ряда. Для этого Вы должны использовать примерно такой код:

flush();
conn.beginTransaction();

cursor = conn.cursor ("SELECT * FROM CUSTOMER", true);
while ( cursor.next() ) {

// ... обработка ряда ...
   flush();
}

conn.commitTransaction();
cursor.close();



Содержание раздела