這是我做了什麼,我用你標記的答案,但我認爲有幾件事要改變。主頁中的 (如果數據庫中的某些內容發生更改,則要刷新該頁)。 我在我的數據庫中創建了一個名爲setting的表,在這個表中我創建了一個名爲rowCounter的行。 當您檢查的表中的行數已更改時,rowCounter正在更新。 所以我的代碼是在兩個塊。一個給我從設置數字> rowCounter 另一個是腳本給我的表中的當前數字。如果他們不相等,那麼我刷新頁面。
這樣你就可以第一個文件。稱之爲
script_to_return_latest_pageGenID.php
// here you will make you connection query.
$result = mysql_query("SELECT rowCounter FROM setting WHERE `id`='2'");
$update = mysql_fetch_assoc($result);
echo implode($update);
$count=mysql_query("SELECT `id` FROM log_".$datestamp."")or die(mysql_error);
$number = mysql_num_rows($count);
//echo $number;
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
if($number != $numberFromSetting)
{
mysql_query("UPDATE setting SET `rowCounter`='$number' WHERE `id`='2'")or die(mysql_error);
}
在主網頁你會寫代碼的兩大塊我寫的,你把它的腳本之前。
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
此代碼後,你把那個會查詢每隔幾秒鐘PHP頁面,檢查數量不相等,它會刷新頁面的腳本。
var pageGenID = "<?php echo $numberFromSetting; ?>";
var processUpdate = function(response) {
var x=response;
//console.log(pageGenID); by removing the remarks you will see the compared numbers all the time.
//console.log(x);
if (pageGenID != x)
{
//replace_current_data_with_new_via_ajax();
pageGenID = response;
window.location.reload();
}
}
var checkUpdates = function()
{
serverPoll = setInterval(function()
{
$.get('script_to_return_latest_pageGenID.php',
{ lastupdate: 1 },
processUpdate, 'html');
}, 5000) };
$(document).ready(checkUpdates);
首先,JQuery的補充方式對於這樣一個簡單的任務來說,開銷太多了。如果你要使用AJAX路線,只需使用一個XMLHttpRequest對象。另外,就像我在我的文章中指出的那樣,由於JavaScript或MySQL注入的風險增加,請保留諸如`pageGenID` *服務器端*之類的東西。 – Qix 2011-01-07 20:26:23