Ciao, ho bisogno di un aiuto se qualche buon'anima riesce a fornirmelo. Sul mio sito utilizzo una comune shoutbox ajax, ma i tanti utenti contemporanei (circa 3000), hanno mandato ko la cpu del mio hosting. Inizialmente ho fatto una prima modifica, portando il tempo di refresh da 3 secondi a 2 minuti. In questo modo le chiamate al server sono passate da oltre 1milione a 50mila circa al minuto. Adesso devo ottimizzare ulteriormente il codice. Il mio provider mi ha suggerito di mettere mano alla riga del codice in cui è contenuta la funzione random (qui sotto allego il codice completo dello script), ma io sinceramente non riesco a saltarci fuori.
Qualcuno mi può aiutare? Grazie mille in anticipo.
ecco il codice dello script:

<script language="javascript" type="text/javascript">
<!--
var request;
var lastload=0;
var refreshTime=120000; // 2 minutes

function createRequest()
{
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}

if (!request)
alert("Error initializing XMLHttpRequest!");
}


createRequest();

function sayIt()
{
var msg = document.getElementById("myShout").value;
document.getElementById("myShout").value = "";
var randomnumber=Math.floor(Math.random()*23123); // get rid of pesky caching...

var url = "ajax_command.php?shout=ashout&n="+randomnumber+"& msg="+escape(msg);
request.open("GET", url, true);
request.onreadystatechange = updateSayIt;
request.send(null);
}

function clearShoutStatus()
{
document.getElementById("shoutstatus").innerHTML = "";
}

function updateSayIt()
{
if (request.readyState == 1)
document.getElementById("shoutstatus").innerHTML = "Aggiornamento live.";
if (request.readyState == 4)
{
document.getElementById("shoutstatus").innerHTML = "Aggiornato";
setTimeout('clearShoutStatus();',refreshTime);
getNewShouts();
}
}

function getShouts()
{
var randomnumber=Math.floor(Math.random()*23123); // get rid of pesky caching...
var url = "ajax_command.php?shout=getshouts&n="+randomnumber ;
request.open("GET", url, true);
request.onreadystatechange = updateShouts;
request.send(null);
}

function updateShouts()
{
if (request.readyState == 4)
if (request.status == 200) // check server result code...
{
var i;
var messagetime;
var message;
var response = request.responseText.split("~");

document.getElementById("myshouts").innerHTML = '';
for(i=0;i<response.length;i+=3) // go thru each element in array.. length -1 needed..
{
message = response[i];
messagetime = response[i+1];
messagetexttime = response[i+2];
document.getElementById("myshouts").innerHTML += "";

document.getElementById("myshouts").innerHTML += ""+message+"";
document.getElementById("myshouts").innerHTML += "

";
if(i==0) lastload = messagetime; // use this for when calling updates...
}
setTimeout('getNewShouts();',refreshTime); // run again in 3 seconds..
}
else if (request.status == 404) // check server result code...
alert("Could Not Find Page on Server!");
}

function getNewShouts()
{
//createRequest();
var randomnumber=Math.floor(Math.random()*11); // get rid of pesky caching...
var url = "ajax_command.php?shout=getnewshouts&time="+lastlo ad+"&n="+randomnumber;
// alert(url);
request.open("GET", url, true);
request.onreadystatechange = updateNewShouts;
request.send(null);
}

function updateNewShouts()
{
if (request.readyState == 4)
{
if (request.status == 200) // check server result code...
{
// send a header of a weird number if unable to find page on server...request.status == 999
var i;
var messagetime;
var message;
var newHTML="";
var response = request.responseText.split("~");

for(i=0;i<response.length;i+=3) // go thru each element in array.. length -1 needed..
{
message = response[i];
messagetime = response[i+1];
messagetexttime = response[i+2];

newHTML += ""+message+"";
newHTML += "

";
document.getElementById("myshouts").innerHTML = newHTML + document.getElementById("myshouts").innerHTML;
if(i==0) lastload = messagetime; // use this for when calling updates...
}
}
else if (request.status == 404) // check server result code...
alert("Could Not Find Page on Server!");

setTimeout('getNewShouts();',refreshTime); // run again in 3 seconds..

}
}

function submitenter(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
{
sayIt();
return false;
}
else
return true;
}


//-->
</script>

<body onLoad="getShouts()">

<input type="text" id="myShout" onKeyPress="return submitenter(event)" /> <a onMouseDown="sayIt()">say it</a>
<font size=1 color="#FF0000"><div id=shoutstatus></div></font>

<div id=myshouts></div>

</body>