【问题标题】:Loading new data with Javascript/ajax based on server time and date根据服务器时间和日期使用 Javascript/ajax 加载新数据
【发布时间】:2015-07-18 14:22:25
【问题描述】:

我目前有一个 JS ajax 脚本来从数据库中加载数据,其中查询位于 load.php 如何根据服务器时间和日期分别自动加载新内容? 比如不是让整个数据库表每“5秒”刷新一次 但是加载一次当前数据,然后根据服务器时间/日期加载新数据。 这是我的脚本>

     <script language="JavaScript"> 
   window.onload = function() 
    { 
         $('#feed').empty(); 
         $('#feed').load("load.php"); 
    } 
</script> 

【问题讨论】:

  • 您不需要 JavaScript 就可以根据今天的日期在页面中加载新数据。
  • 我将如何处理它?我的意思是我正在考虑走 Ajax 路线,但后来意识到它会刷新“所有表数据”

标签: javascript php jquery ajax


【解决方案1】:

如果没有来自客户端(浏览器)的请求,您无法从服务器发送 AJAX 数据。因此,您应该使用第一个请求(请求页面本身的浏览器)来计算服务器上的时间偏移量(在 PHP 中),并将您的 .load() 函数放在将在几秒钟后执行的 setTimeout 中。所以你的 PHP 文件看起来像这样:

$time = 4300 // or whatever, based on your server clock.
echo '<script language="JavaScript">
      window.onload = function(){ 
         $("#feed").empty(); 

         /* if you want to execute it once at page load too:*/
         $("#feed").load("load.php"); 

         /* then load after $time milliseconds:*/
         setTimeout(function(){
             $("#feed").load("load.php");
         },'.$time.');
      }
      </script>';

请记住,setTimeout 的偏移量应该以毫秒为单位。

如果您拥有完整的服务器访问权限(如套接字和其他东西),Websockets 是您问题的另一种解决方案。它们基本上涉及在第一次执行脚本时创建一个 websocket 连接,然后服务器和客户端可以随意发送消息给对方。这些消息可以包含您希望的数据。

【讨论】:

  • 谢谢,参考服务器时钟,我怎么知道我的是什么?如果有帮助,它是一个 ubuntu 服务器,并设置为英国 GMT
  • PHP 提供了 localtime() 和 getdate() 函数,如果设置了返回服务器(本地)时间。 localtime 提供时间戳,而 getdate 提供数组。参考:getdate & localtime
猜你喜欢
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
相关资源
最近更新 更多