我在一个网站上有一个页面,其工作方式类似于反向拍卖。它有一个 javascript 倒计时计时器,该计时器会根据拍卖的时间倒计时。当它达到零时,拍卖结束并刷新页面。
一切如梦如幻,但问题是如果出价我希望页面刷新显示该出价,并更新许多其他元素。
该网站目前通过 flash 检查 php 文件来做到这一点,当 flash 注意到更改时刷新页面。这很好,但我们不会删除 flash 并只使用 javascript,因此我们在 iPhone/iPad 和其他移动设备上运行网站不会有任何问题。
因此,经过漫长的积累之后,我需要一个解决方案,无论是 AJAX 还是其他方法,欢迎在这里提供任何帮助...
提前致谢
最佳答案
我在没有使用 jQuery 的情况下做了一些你想要的事情;我不想只为一个功能安装 jQuery。这有点笼统,因为我实际使用的代码对其他人来说毫无意义。我在 iframe 中使用了一个 PHP 页面来定期检查数据库中的关键字段是否发生了变化。如果它更改了 PHP 脚本,则设置一个 cookie。在主页中,一些 javascript 会定期读取 cookie 并在 cookie 指示数据已更改时刷新页面。这大约是我所做的。我修改了代码,使其不再特定于我的需求。
首先你需要一个简短的 PHP 页面来定期检查数据库(主页面需要设置适当的 cookie):
<?
//This page is named "check.php"
$OldTimestamp = $_COOKIE["timestamp"];
$id = $_COOKIE["id"];
mysql_connect('localhost','MyUsername','MyPassword');
mysql_select_db('MyDatabase');
$query = "SELECT timestamp FROM MyTable WHERE id = '$id'";
$result = mysql_query($query);
$numrows = mysql_numrows($result);
if($numrows > 0){
$timestamp = mysql_result($result,0,"timestamp");
if($timestamp == $OldTimestamp){
setcookie("DataChanged", "N");
}else{
setcookie("DataChanged", "Y");
}
}
?>
<html>
<head>
<meta http-equiv='refresh' content='5'>
</head>
<body>
</body>
</html>
在要刷新的页面的 iframe 中加载此页面
<iframe src='check.php' width='0' height='0' frameborder='0'></iframe>
现在您需要在要刷新的页面上使用一些 javascript。这包括我能找到的最短的 cookie 阅读器以及一些代码,用于每 15 秒检查一次 cookie 并在 cookie 指示数据已更改时刷新页面。
<script language='javascript'>
function get_cookie(name){
return(document.cookie.match('(^|; )'+name+'=([^;]*)')||0)[2]
}
function checkDatabase(){
if(get_cookie('DataChanged')=="Y"){
location.href='ThisPage.php';
}
}
setInterval(function(){checkDatabase()},15000);
</script>
关于php - mysql更改时更新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4137972/