【问题标题】:Auto update template string value without refreshing the page自动更新模板字符串值而不刷新页面
【发布时间】:2017-05-29 10:40:20
【问题描述】:

所以,当我刷新页面时,模板字符串会更新为从数据库中提取的新值,并且一直在变化。

有没有办法可以使用 ajax 或类似的东西来自动刷新模板字符串的值?

这是这里的模板字符串:

它是从执行数据库查找值的 GET 请求中提取的。

【问题讨论】:

    标签: javascript jquery node.js ajax


    【解决方案1】:

    当然,您需要使用 ajax。然后,需要在元素(如 div、span)内设置该值。然后您创建一个页面来写入更新的值(从数据库中获取并将其写出)。使用 ajax 将页面中的值更新为元素。

    【讨论】:

    • 当我对包含模板字符串的路由使用 GET ajax 请求并执行数据库查找时,它每 3 秒(或我设置的任何值)自动获取页面,但模板字符串值在我刷新物理页面之前不会在页面上更改。
    • 1) 你编写了一个脚本,在 3 秒后自动调用 ajax 更新(只需使用 setTimeout,js 的 setInterval)。 2) 两个页面(调用ajax的页面和写数据的页面)都需要设置no-cache。
    • 我在 ajax 调用中将缓存设置为 false。我还能在哪里做这个?在 GET 路由中?
    • 好的,所以我在呈现模板字符串的 GET 路由中执行此操作:res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");。还是不行。
    • 你必须测试:1)运行页面更新数据(ajax调用的页面)——它会正常工作吗? 2)测试你的页面。会不会有错误? 3)如果1-正常工作,2-没有错误。所以你需要清除所有浏览器缓存。再次运行。
    【解决方案2】:

    尝试使用这种语法调用ajax:

    setInterval(function(){
        $.ajax({
          url: "the_page_that_you_write_out_the_right_result",
          cache: false
        }).done(function(html) {
            $( "#the_id_of_tag_that_you_want_to_display_result" ).append(html);
        });
    }, 5000);
    

    【讨论】:

    • 它工作正常,有点。附加虽然弄乱了页面。它看起来像这样:snag.gy/ZjVPoU.jpg,它会在每个时间间隔将整个页面添加到页面中,而不仅仅是更改我将 ID 设置为的 。
    • 我认为这是因为它在每个时间间隔将整个仪表板页面附加到 HTML 的底部。
    • 您的意思是它工作正常,只是结果是“追加”而不是“替换或更新”。并且页面会在时间间隔后更长。对吗?
    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2011-12-29
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多