【问题标题】:What is the best way to dynamically collect data from an SQL Database [closed]从 SQL 数据库动态收集数据的最佳方法是什么 [关闭]
【发布时间】:2018-08-08 20:00:46
【问题描述】:

所以目前我有一个系统可以从 SQl 数据库中提取数据并以单独的计数显示详细信息。

例如,总工单、支持工单、客户工单等。

只有当用户重新加载页面或导航到系统的另一部分时才会更新此数据。

我希望对整个系统进行改造,以确保数据始终有效,而不是用户需要重新加载页面。

我一直在研究 JQuery 和 AJAX,但是我找到的所有信息仍然需要用户输入。

因此,我会就如何设置不需要用户输入的系统提供一些建议或链接,而是每隔 X 秒提取一次数据并更新页面而不刷新它。

我还希望能够扩展此功能,以便在记录新工单等时显示页面内警报。

【问题讨论】:

  • 创建一个 javascript 函数,使用 jquery load() 将内容从单独的 PHP 页面加载到实际视图页面上的 div 中。这个单独的 PHP 页面应该生成表格视图。现在,在使用load() 的函数上使用setTimeout(),每隔x 秒重新加载一次。现在您的页面应该有(几乎)实时更新(这是我在一些低优先级任务中使用过的快速而肮脏的方法,我通常每 5 或 10 秒重新加载一次)
  • 创建一个函数来获取计数并更新页面,然后在 javascript 中使用 setInterval() 函数调用该函数。 w3schools.com/jsref/met_win_setinterval.asp

标签: php jquery sql ajax


【解决方案1】:

“我找到的所有信息仍然需要用户输入。”

...不确定您一直在阅读什么,但是不,您可以设置超时或间隔以定期进行固定的 AJAX 调用以获取最新数据,而无需用户干预。

这是一个演示。在这种情况下,它每次都从静态源附加相同的数据,但如果您的源返回正在后台更新的数据库数据,那么您可能想要替换已经存在的数据而不是附加。这是一个小细节,但值得澄清。

//when called, this will make an AJAX call and append data from the response to the "content" div
function getData() {
  $.ajax({
    method: "GET",
    url: "https://api.myjson.com/bins/df42s",
    dataType: "json"
  }).done(function(response) {
    $("#content").append("<br/>" + response.name);
  });
}

//initial fetch of the data
getData();

//then set the same function to run at 5 second intervals:
var interval = setInterval(getData, 5000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">

注意不要将间隔设置得太频繁,否则您可能会超载服务器,和/或发现一个 AJAX 调用在下一个调用开始之前还没有完成。这两种情况都不是很理想。

关于 setInterval 的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

【讨论】:

  • 改变 $("#content").append("
    " + response.name);到 $("#content").empty().append("
    " + response.name);使这完全符合我的需要。谢谢:D
  • 没问题。无需清空然后附加到它。如果你只是做$("#content").html(response.name);,它每次都会覆盖整个事情。当然,如果您不打算有多行,则不需要&lt;br/&gt;。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多