Я сделал что-то вроде того, что вы хотите, не используя jQuery;Я не хотел устанавливать jQuery только для одной функции.Это немного общий характер, потому что код, который я на самом деле использовал, был бы бессмысленным для всех остальных.Я использовал страницу PHP в iframe, чтобы периодически проверять, изменилось ли ключевое поле в базе данных.Если это изменило скрипт 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, которое я смог найти, а также код, который проверяет файлы cookie каждые 15 секунд и обновляет страницу, если файл 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>