AJAX 检查更新和 php 刷新页面

Cha*_*ieT 1 javascript php ajax jquery

我是 AJAX 新手。要温柔。我想用ajax检查数据库在过去十分钟内是否有更新。

1)我有两套代码。请告诉我哪一个是更好的选择以及原因(如果您有比我更好的代码,我愿意接受建议)。

2)其次,检查更新是否在过去十分钟内的php脚本需要更新需要刷新的第一页,如果更新是在过去十分钟内,我该怎么做?

阿贾克斯选项 1:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
var auto_refresh = setInterval(function ()
{
$('#slideshow').load('check_time.php');
}, 600000); // refresh every 600000 milliseconds

</script>
Run Code Online (Sandbox Code Playgroud)

阿贾克斯选项 2

<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "check_time.php", false);
xhttp.send();
document.getElementById("slideshow").innerHTML = xhttp.responseText;
}
Run Code Online (Sandbox Code Playgroud)

用于检查更新的 PHP 脚本

<?PHP

date_default_timezone_set('Africa/Johannesburg');
$currenttime = date('Y-m-d H:i:s');
$timelessten = date_modify($currenttime,"-10 Minutes");
require_once('connect_pdo.php');
$sqlst = $conn->prepare("SELECT `lastupdate` FROM `Ads`");
$sqlst->execute();
while($resultst = $sqlst -> fetch()){
$updatetime = $resultst["lastupdate"];
}
if($updatetime <= $timelessten){
//Refresh code here. 
}
?>
Run Code Online (Sandbox Code Playgroud)

我已经尝试header('location: phppage.php');过并且header('location: phppage.php'); exit();

更新 PHP 文件

<?php
require_once('connect_pdo.php');

$stmt = $conn->prepare("SELECT COUNT(*) AS count
                     FROM ads
                     WHERE lastupdate > NOW() - INTERVAL 10 MINUTE");
$stmt ->execute();
while($row = $stmt ->fetch())
{
$update = json_encode($row['count'] > 0);
echo "$update ";
}

?>
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 5

您可以在 SQL 查询中检查新广告:

$sqlst = $conn->prepare("SELECT COUNT(*) AS count
                         FROM ads
                         WHERE lastupdate > NOW() - INTERVAL 10 MINUTE");
$sqlst->execute();
$row = $sqlst->fetch();
Run Code Online (Sandbox Code Playgroud)

我建议您返回 JSON 响应:

echo json_encode($row['count'] > 0);
Run Code Online (Sandbox Code Playgroud)

然后在 Javascript 代码中你可以这样做:

setInterval(function() {
    $.getJSON("check_time.php", function(update) {
        if (update) {
            $("#slideshow").load("phppage.php");
        }
    })
}, 600000);
Run Code Online (Sandbox Code Playgroud)