我在桌面上有一个带有SQL查询的页面,可以在大屏幕上显示结果。
然后浏览到index.php,其中包含以下代码:
// <![CDATA[
$(document).ready(function() {
// This part addresses an IE bug. without it, IE will only load the first number and will never refresh
$.ajaxSetup({ cache: false });
setInterval(function() {
$('.container').load('data.php');
}, 2000); // the "2000" here refers to the time to refresh the div. it is in milliseconds.
});
// ]]>
HTML:
<div class="container"><h3>Loading Data...</h3></div>
因此它会不断加载此页面。
我想要的是拥有它,所以如果任何查询包含需要对其执行操作的数据,表格单元格将闪烁2种颜色,并且声音将每5分钟播放一次。
这样做的最佳方法是什么,并保持常量页面加载?
答案 0 :(得分:2)
我会将.load()更改为ajax调用,该调用在完成后调用函数。检查下面的脚本:
// Prepare the audio - replace the link with your own mp3
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'http://www.uscis.gov/files/nativedocuments/Track%2090.mp3');
// Global that will control the flashing / playing of sound
var alertUser = false;
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // Fix IE bug
setInterval(function(){
$.ajax({
url: "data.php",
complete: function( jq, content ){
$('.container').html( jq.response );
if( jq.response.indexOf( 'from' ) != -1 ) { // your logic goes here to decide the warning
alertUser = true;
} else {
alertUser = false;
}
}
});
}, 2000);
setInterval(function(){
if( alertUser ) {
// play tune
audioElement.play();
// flash background
window.setTimeout( function(){
$('.container').css('background-color','red')
}, 200 );
window.setTimeout( function(){
$('.container').css('background-color','blue')
}, 400 );
window.setTimeout( function(){
$('.container').css('background-color','transparent')
}, 600 );
}
}, 1000);
});