Salve, ho questo script che praticamente ogni tot secondi, 30 per ora, richiama un file sul server.
Vorrei fare in modo che:
1- lo script generi il minor numero di richieste possibili al server, a me basta che richiami il file ogni 30 sec.
2- fare in modo che tipo dopo 1 ora si autodisabiliti e non aggiorni più la pagina.
3- se il file sul server non cambia nell'arco di 5 min, lo script si disabilita.

Codice PHP:
<script type="text/javascript">
<!--
var 
timeout;
function 
callReadFile(file_name) {
    
readFileDoFunction(file_name"GET"
        function() {
            if(
request.readyState == 4) {
                if(
request.status == 200) {
                    var 
last_modified request.getResponseHeader("Last-Modified");
                    var 
last_modified_date = new Date(last_modified);
                    
displayResults(request.responseTextfile_namelast_modified_date.getDate());
                }
            }
        }
    );
}
function 
readFileDoFunction(file_nameread_typethe_function) {
    if(
window.XMLHttpRequest) {
        
request = new XMLHttpRequest();
    } else {
        
request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var 
the_url "http://www.server.com/time/read_file.php?fileName=" file_name "&t=" + new Date().getTime();
    var 
the_results;
    if(
request) {
        
request.open(read_typethe_url);
        
request.onreadystatechange the_function;
        
request.send(null);
    } else {
        
alert("Devi aggiornare il browser prima di vedere il risultato della funzione AJAX ");
    }
}
function 
displayResults(the_resultsfile_namelast_modified) {
    
document.getElementById("content").innerHTML the_results;
    
timeout setTimeout("callUpdateIfChanged("+last_modified+",'"+file_name+"')",30000);
}
function 
callUpdateIfChanged(current_last_modifiedfile_name) {
    
readFileDoFunction(file_name"HEAD",
        function() {
            if(
request.readyState == 4) {
                if(
request.status == 200) {
                    var 
last_modified request.getResponseHeader("Last-Modified");
                    var 
last_modified_date = new Date(last_modified).getTime();
                    if(
last_modified_date != current_last_modified) {
                        
callReadFile(file_name);
                    }
                    
timeout setTimeout("callUpdateIfChanged("+last_modified_date+",'"+file_name+"')",30000);
                }
            }
        }
    );
}
function 
stopTimer() {
    
clearTimeout(timeout);
}


function 
updateClock () {
      var 
currentTime = new Date();

      var 
currentHours currentTime.getHours();
      var 
currentMinutes currentTime.getMinutes();
      var 
currentSeconds currentTime.getSeconds();
      var 
msec currentTime.getMilliseconds();
      
currentMinutes = ( currentMinutes 10 "0" "" ) + currentMinutes;
      
currentSeconds = ( currentSeconds 10 "0" "" ) + currentSeconds;
      var 
currentTimeString currentHours ":" currentMinutes ":" currentSeconds;
      var 
currentChrono currentHours ":" currentMinutes ":" currentSeconds;
      
document.getElementById("chronotime").firstChild.nodeValue currentChrono;
    }
//-->
</script>
</head>
<body onload="setInterval('updateClock()', 10 );callReadFile('http://www.server.com/file.txt');"> 
Grazie 1000

ciao

neorf