Applico il polling lungo la cometa, che utilizza usleep all'interno while loop finché non vengono restituiti nuovi dati dal server come di seguito:
PHP
while ($currentmodif <= $lastmodif)
{
usleep(10000); // sleep 10ms to unload the CPU
clearstatcache();
$currentmodif = filemtime($filename);
}
La mia chiamata ajax ha specificato il timeout:
jquery
var timeout = 120;
jQuery.ajax({
method: "POST",
url: "/index.php",
timeout: 1000* timeout, // 1000 1 sec
"data": data2,
error: function() {
console.debug('error');
},
success: function(result) {
..........code cut for brevity...
quindi, quando il ciclo while raggiunge php.ini max_execution_time
, ajax timeout e avvierà una nuova connessione.
Questo funziona bene finora. La mia unica preoccupazione è che questo metodo mangi lo spazio su disco o rallenti le prestazioni del sistema? Se sì, come superarlo ..
Si sconsiglia di passare a websocket
in quanto non sono proprietario del server..so non posso apportare modifiche ..