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秒的超时时间也很短。一个小故障就会失败。