我在网站上有一个页面,类似于反向拍卖。它有一个javascript倒计时器,根据拍卖的时间长短。当它达到零时,拍卖结束并且页面刷新。
一切都像梦一样,但问题是如果出价,我希望页面刷新显示该出价,并更新许多其他元素。
该网站目前通过闪存检查php文件来执行此操作,当闪存通知更改刷新页面时。这很好,但是我们不会删除flash并且只使用javascript,因此我们在iPhone / iPad和其他移动设备上运行该站点时没有任何问题。
所以,经过长时间的积累后,我需要一个解决方案,无论是这个AJAX还是其他方法,任何帮助都比这更受欢迎......
提前致谢
答案 0 :(得分:2)
我没有使用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>
答案 1 :(得分:1)
使用jQuery和计时器 离。
setInterval(function(){
$.getJSON(
"myPath/myFile.php",
{
myData1:myDataVar1,
myData2:myDataVar2
},
function(response){
// Here the code
});
},1000);
(以毫秒为单位的时间)
答案 2 :(得分:1)
您应该创建一个div ID来显示出价金额。并使用jQuery通过AJAX调用更新数量,如下所示。
setTimeout('update_amount()', 1000);
function update_amount(){
var amt = $("#amount").html();
$.post('ajax_file.php?a='+amt, function(data){
if(data!=''){
$('#amount').html(data);
}
此处页面中显示的当前值存储在 amt 中。然后这个值通过AJAX作为post传递给php文件。您必须执行以下过程来检查mySql表中的金额是否已更改,如果更改,则只回显该php文件中的新金额。该金额将在当前页面的金额div id中更新。