1

我有一个 JSP 页面,它显示数组中包含的项目(只是一个非常简单的列表)。
在后台,阵列可能会发生变化,即添加一个新项目或删除一个项目。

数组更改时如何自动刷新页面?

4

3 回答 3

3

有两种最流行的方式来执行这种操作

  • pool 一个方法,它会发送 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" },
]
于 2012-05-27T14:05:26.240 回答
1

一旦 JSP 执行完毕,它生成的 HTML 代码就已经发送到浏览器,浏览器和 JSP 之间就没有任何联系了。如果要刷新页面的某些部分,则需要使用 AJAX 轮询服务器,或者使用 WebSockets 来保持页面与服务器之间的连接。

于 2012-05-27T13:53:50.243 回答
0

要静默刷新页面,请使用 AJAX。下面是一些例子

示例 1

示例 2

谷歌搜索

于 2012-05-27T13:58:25.540 回答