【问题标题】:Ajax Call to refresh web pageAjax 调用刷新网页
【发布时间】:2018-07-17 22:48:50
【问题描述】:

更新:我在后端使用 apache 服务器,在前端使用 vanilla JS 和 jquery。

目前我有一个网页,其中显示了我从后端服务器提取的各种数据。

它是如何工作的:我有一个 php 脚本,它正在抓取目录名称并将它们显示在下拉列表中。我在我的 html 中为网页设置了一个刷新功能,该功能每 30 秒刷新一次页面。

问题:我不喜欢不断刷新,尤其是在没有什么要更新的情况下。

有没有办法使用 ajax 来汇集我的后端服务器并检查是否在目录中输入了新数据,然后更新我的下拉列表?

非常感谢!

【问题讨论】:

  • 是的,有办法做到这一点。请添加您的代码,以便我们为您提供帮助。
  • 这有点太宽泛了。有几种方法可以做到这一点,无论是 AJAX XHR 请求还是持续连接 WebSockets。

标签: javascript jquery html ajax apache


【解决方案1】:

使用.data

window.setInterval(function() { 
    $.getJSON('/foo', { }, function(result) { 
        //Get the old data stored in the body using jquery data
        var old_data = $('body').data('my_data');
        //If objects are not the same, update cell
        if ( ! equal_objects(result, old_data) )
             update_cell();
        //Store the new data
        $('body').data('my_data',result);
    }); 
}, 30000);

OBS:equal_objects 是一个你应该实现来比较两个对象的函数,因为 JavaScript 不提供这个功能。详情见此贴:Object comparison in JavaScript

【讨论】:

  • 我们甚至不知道 OP 使用了哪些前端库。不要回答这么宽泛的问题。您正在做出大量假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多