I'm trying to update mutiple div's, depending whether or not new content is available for them. I can get one div to update perfectly fine, but as soon as I add recursive-requests stuff starts messing up in that div's will blank out with no content at all, or with the wrong content (as if they're intercepting each other). Is there a way around this? This is my js: [code]function createRequestObject() { var ro; var browser = navigator.appName; if(browser == 'Microsoft Internet Explorer') { ro = new ActiveXObject("Microsoft.XMLHTTP"); } else { ro = new XMLHttpRequest(); } return ro; } var http = createRequestObject(); function sndReq(timestamp, action) { http.open('get', 'terminal.php?t='+timestamp+'&action='+action+'&nocache='+Date()); http.onreadystatechange = function(){handleResponse(action);} http.send(null); } function handleResponse(action) { if(http.readyState == 4) { var response = http.responseText; switch(action) { case 'updateTimer': if(response != timestamp) { timestamp = response; } sndReq(timestamp, 'usersonline'); break case 'usersonline': if(response != document.getElementById(action).innerHTML) { document.getElementById(action).innerHTML = response; } // un-commenting the following line is where problems occur //sndReq(timestamp, 'calendar'); break case 'calendar': if(response != 'noupdate') { document.getElementById(action).innerHTML = response; } break } } } var timestamp = '<?php echo time(); ?>'; setInterval("sndReq(timestamp, 'updateTimer')", 30000);[/code] And this is my PHP: [code]<?php require_once('../offline/functions.php'); session_start(); if(isset($_REQUEST['t'], $_REQUEST['action'])) { $timestamp = ctype_digit($_REQUEST['t']) ? $_REQUEST['t'] : time(); switch($_REQUEST['action']) { case 'updateTimer': echo time(); break; case 'usersonline': $result = db_query("SELECT count(*) FROM icv_sessions WHERE valid = 'Y'"); $online = $result[0][0] <= 1 ? 'there is currently 1 active session' : 'there are currently '.$result[0][0].' active sessions'; $online .= ' :: <b>'.date("n.j.y.B", $_REQUEST['t']).'</b> '; echo $online; break; case 'calendar': $result = db_query("SELECT UNIX_TIMESTAMP(create_ts) FROM icv_threads ORDER BY create_ts DESC LIMIT 1"); $lastThread = $result[0][0]; if($lastThread >= ($timestamp - 60)) { $dateArray = setup_calendar(); echo build_calendar($dateArray['month'], $dateArray['year'], $dateArray['dates']); } else { echo 'noupdate'; } break; } exit(); } ?>[/code]