Forum Moderators: open
// This is untested and may include pseudo-code...
//
previous_page = ''
refreshCheck = setTimeout(function() {
// doTimeCheck is your function to check the time difference
difference = doTimeCheck(current_time);
if (difference <= 180000) {
page_name = 'page1.php';
reload_time = 2000;
}
else {
page_name = 'page2.php';
reload_time = 30000;
}
if (page_name != previous_page) {
clearTimeOut(ajaxLoadPage);
ajaxLoadPage = setTimeOut(function() {
// doAjaxLoad is your ajax function
doAjaxLoad(page_name);
}, reload_time);
previous_page = page_name;
},2000 );
function doAjaxLoad(whatToLoad) { // technically speaking, this is JQuery, not AJAX
$("#responsecontainer").load(whatToLoad);
}
var previous_page = '';
var refreshCheck = setInterval(function() { // setInterval, not setTimeOut
var difference = getDifference(); // getDifference returns the number of seconds
if (difference <= 180) { // difference is in seconds, not milliseconds
var page_name = "page1.php";
var reload_time = 2000;
}
else {
var page_name ="page2.php";
var reload_time = 30000;
}
if (page_name != previous_page) {
clearInterval(ajaxLoadPage); // clearInterval, not clearTimeOut
var ajaxLoadPage = setInterval(doAjaxLoad(page_name), reload_time); // Again, setInterval, not setTimeOut
previous_page = page_name;
}
},2000 ); // check every 2000 milliseconds to see if the difference has become less than 180
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type = "text/javascript">
$(document).ready(function() {
var previous_page = '';
var page_name = '';
var count1 = 0;
var count2 = 0;
var reload_time = 0;
var ajaxLoadPage = 0;
var difference = 0;
function doAjaxLoad(pageToLoad) {
count2 ++
$("#responsecontainer").html(pageToLoad + ' ' + count2 + ' ' + reload_time );
}
refreshCheck = setInterval(function() {
count1 ++ ;
$("#refresh_check").html(count1);
difference = $('#input_difference').attr('value');
if (difference <= 180) {
page_name = "page1.php";
reload_time = 2000;
}
else {
page_name = "page2.php";
reload_time = 30000;
}
$("#page_name").html(page_name);
$("#difference").html(difference);
if (page_name != previous_page) {
$("#fetch_page").html('Getting: ' + page_name);
clearInterval(ajaxLoadPage);
count2 = 0
doAjaxLoad(page_name);
ajaxLoadPage = setInterval( function() {
doAjaxLoad(page_name);
}, reload_time);
previous_page = page_name;
}
else {
$("#fetch_page").html('zzzz.... sleeping ' + reload_time / 1000 + ' seconds!');
}
},2000 ); // check every 2000 milliseconds to see if the difference has become less than 180
});
</script>
</head>
<body>
<input type="text" id="input_difference" value="0"></input>
<div id="responsecontainer">I will be populated soon...</div>
<div>Checked <span id="refresh_check">0</span> times.</div>
<div>Difference: <span id="difference"></span></div>
<div>Page name: <span id="page_name"></span></div>
<div id="fetch_page"></div>
</body>
</html>