Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数据库中的更改,然后重新加载页面_Javascript_Php_Jquery - Fatal编程技术网

Javascript 检查数据库中的更改,然后重新加载页面

Javascript 检查数据库中的更改,然后重新加载页面,javascript,php,jquery,Javascript,Php,Jquery,我正在开发一个脚本,我需要它来检查数据库中的更改 每次执行edit.php时,它都会生成一个时间戳并将其保存在数据库中。如果数据库中保存了较新的时间戳,则需要刷新edit.php页面 因此,我创建了一个页面,显示保存在DB上的当前时间戳(checkupdates.php),并使用JS脚本检查页面并比较时间戳。如果DB one较新,则需要刷新页面 我没有javascript的概念,到目前为止,我的页面没有对当前脚本的响应 以下是我到目前为止得到的信息: edit.php var updateti

我正在开发一个脚本,我需要它来检查数据库中的更改

每次执行
edit.php
时,它都会生成一个时间戳并将其保存在数据库中。如果数据库中保存了较新的时间戳,则需要刷新
edit.php
页面

因此,我创建了一个页面,显示保存在DB上的当前时间戳(
checkupdates.php
),并使用JS脚本检查页面并比较时间戳。如果DB one较新,则需要刷新页面

我没有javascript的概念,到目前为止,我的页面没有对当前脚本的响应

以下是我到目前为止得到的信息:

edit.php


var updatetime=“”//执行页面时保存在数据库中的时间戳
函数checkUpdate(){
$.ajax({
url:'checkupdates.php?id=$id',
超时时间:2000,
成功:功能(数据){
如果(当前时间<更新时间){
警报(“页面将被重新加载”);
location.reload();
}
});
}
设置间隔(检查更新,5000);
checkupdates.php


谢谢大家!

echo "<script>var currentTS = ".$sheet->utime.";</script>";
然后在AJAX成功中添加
数据类型:“json”

data.currentTS < updatetime
data.currentTS

以上将解决您返回数据时遇到的问题。但我确实想知道为什么会如此详细。您不能每5秒向服务器发出一个请求,然后动态更新页面上的组件吗

然后在AJAX成功中添加
数据类型:“json”

data.currentTS < updatetime
data.currentTS


以上内容将解决您返回数据时遇到的问题。但我确实想知道为什么会如此详细。您不能每5秒向服务器发出一次请求,然后动态更新页面上的组件吗?

您不能通过AJAX直接在HTML脚本中回显javascript。 你可以做以下几点

checkupdates.php中
do

<?php 
   // ...
   echo $sheet->utime;

您不能直接通过AJAX在HTML脚本中回显javascript。
你可以做以下几点

checkupdates.php中
do

<?php 
   // ...
   echo $sheet->utime;

最好在ajax中发送json响应,因为js代码无法正常工作,请尝试以下操作:

 $response = ["currentTS" => $sheet->utime];
 echo  json_encode($response); 
然后像下面这样编写ajax(如果
$id
是一个php变量,则将其写成
):

函数checkUpdate(){
$.ajax({
url:'checkupdates.php?id=$id',
超时时间:2000,
数据类型:“json”,
成功:功能(数据){
if(data.currentTS
最好在ajax中发送json响应,因为js代码无法正常工作,请尝试以下操作:

 $response = ["currentTS" => $sheet->utime];
 echo  json_encode($response); 
然后像下面这样编写ajax(如果
$id
是一个php变量,则将其写成
):

函数checkUpdate(){
$.ajax({
url:'checkupdates.php?id=$id',
超时时间:2000,
数据类型:“json”,
成功:功能(数据){
if(data.currentTS
您可以使用mysql触发器

CREATE TRIGGER trigger_name AFTER UPDATE ON table_name FOR EACH ROW

BEGIN

SET @exec_var = sys_exec(CONCAT('node /path/to/node-js-script.js ', NEW.id));

END;
并捕捉操作特定表的精确时刻,并在站点上的任意位置发出事件

然后你就不需要像这样的东西了:

setInterval(checkUpdate, 5000);

…要在每5秒循环发送不需要的请求,可以使用mysql触发器

CREATE TRIGGER trigger_name AFTER UPDATE ON table_name FOR EACH ROW

BEGIN

SET @exec_var = sys_exec(CONCAT('node /path/to/node-js-script.js ', NEW.id));

END;
并捕捉操作特定表的精确时刻,并在站点上的任意位置发出事件

然后你就不需要像这样的东西了:

setInterval(checkUpdate, 5000);

…每5秒循环发送不需要的请求

你做错了,为什么要回显JS代码?什么是
$id
url:'checkupdates.php?id=$id',
?还有2秒的超时时间非常短。一个小故障就会失败。你做错了,为什么要回显JS代码?什么是
$id
url:'checkupdates.php?id=$id',
?2秒的超时时间也很短。一个小故障就会失败。