数据变化时自动刷新jsp页面

Posted

技术标签:

【中文标题】数据变化时自动刷新jsp页面【英文标题】:auto refresh jsp page when data changes 【发布时间】:2012-06-02 05:14:42 【问题描述】:

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

如何在数组发生变化时自动刷新页面?

【问题讨论】:

【参考方案1】:

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

汇集一个方法,发送 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" ,
]

【讨论】:

【参考方案2】:

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

Example 1

Example 2

Google Search

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于数据变化时自动刷新jsp页面的主要内容,如果未能解决你的问题,请参考以下文章

JSP页面自动刷新

怎样实现点击浏览器的返回按钮回到页面时刷新该页面

JAVA-JSP内置对象之response对象实现页面自动刷新

在一个jsp页面提交数据后自动跳回到本页面,且本页面不刷新,比如表单里填的数据不会被清空,这个怎么实现

自动刷新页面调用 web 服务

jsp页面该如何刷新验证码