2012-05-27 1 views
0

У меня есть страница JSP, которая показывает элементы, входящие в массив (просто очень простой список).
В фоновом режиме может измениться массив, т. Е. Добавляет новый элемент или удаляет его.auto refresh jsp page when data changes

Как я могу автоматически обновлять страницу при изменении массива?

ответ

2

Есть 2 способа, которые являются наиболее популярными для выполнения такой операции

  • бассейн метод, который бы отправить 1 или 0, чтобы увидеть, если вы обновите страницу или не
  • продолжают спрашивать для этого массива данных и заполнить его с помощью JavaScript

Вариант 1

  • создайте страницу .jsp и назовите ее, например, updateList.jsp
  • добавьте один метод, который будет проверять, есть ли еще данные должны быть заполнены и выход 1 или 0, как: out.println(1)
  • в вашей страницы, и с помощью JQuery, чтобы упростить вещи
$.get("updateList.jsp", function(data) { 
    if(data !== null && data.length > 0 && data === 1) { 
     // refresh this page 
     document.location = document.location.href; 
    } 
}); 

Вариант 2

  • создать .jsp и назовите его, например, data.jsp
  • добавить один метод, который будет выводить строку JSON, содержащий все данные, необходимые для заполнения списка
  • на вашей странице, и с помощью JQuery и JsRender упростить вещи
$.get("updateList.jsp", function(data) { 
    if(data !== null && data.length > 0) { 
     $("#my-list").html(
      $("#my-template").render(data); 
     ); 
    } 
}); 

и в вашем HTML вы будете есть:

<ul id="my-list"></ul> 

<script id="my-template" type="text/x-jsrender"> 
    {{for items}} 
     <li>{{:name}}</li> 
    {{/for}} 
</script> 

предполагается, что ваш JSON будет что-то вроде:

item: [ 
    { name: "Name A" }, 
    { name: "Name B" }, 
    { name: "Name C" }, 
] 
1

После того как JSP был выполнен, код HTML, который он сгенерировал, был отправлен в браузер, и соединение между браузером и JSP больше не существует. Если вы хотите обновить часть страницы, вам необходимо опросить сервер с помощью AJAX или использовать WebSockets для поддержки соединения между страницей и сервером.

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

  • Нет связанных вопросов^_^