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

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

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

【问题讨论】:

    标签: ajax jsp page-refresh


    【解决方案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 来保持页面与服务器之间的连接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-17
          • 2014-05-03
          • 1970-01-01
          相关资源
          最近更新 更多