2012-04-04 1 views
0

Я новичок в jQuery, и мне сложно постоянно обновлять мою страницу, поскольку результаты приходят из моего сервлета Java. Я хочу как эффект таймера на веб-странице, поскольку новые значения времени поступают из сервлета.Как настроить страницу для непрерывного обновления, поскольку результаты поступают из моего Java-сервлета?

На моей странице у меня есть что-то вроде этого:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> 
<script>$(document).ready(function(){$.get("/timer", function(data){$('H1').append(data); })})(); </script> 

И в моем таймере сервлета У меня есть время цикла, который использует response.getWriter(), чтобы записать новое значение времени для как 30 итераций:

//this is in my doGet function 
while(count <30){ 
count++; 
out.println(count); 
} 

Проблема заключается в том, что при загрузке страницы ничего не добавляется к странице до тех пор, пока не будут выполнены 30 итераций. Есть ли способ получить каждую распечатку итерации для показа на странице?

Благодаря

ответ

1

out.flush() будет писать все, что находится в буфере в браузере.

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

Как правило, для получения статуса операции используется таймер/опрос javascript (на сервере у вас может быть операция работает на отдельном потоке - это также служит сообщением keep-alive для сервера - если сервер не получает живого, он может захотеть остановить обработку для повышения эффективности)

Длительный опрос и веб-разъем html5 (вы потребуется поддержка на сервере для сетевой розетки) являются другие подходы -

см: http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

+0

Это ограничение с использованием Java-сервлета? Я хочу получить тот же эффект, что и этот сайт при выполнении поиска в домене: [link] (http://www.zegup.com/) – Rehat

+0

Нет, это не так. Вы можете сделать что-то вроде сайта, который вы отправили с помощью Java. Попробуйте сделать out.flush() - это будет напечатано в браузере. Обратите внимание, что на примере сайта, который вы отправили, когда вы нажимаете «поиск», он отправляет новый запрос и переходит на новую страницу. –

+0

. Я отредактировал свой ответ с обновлениями из комментариев выше. –

Смежные вопросы