Problematic Loop and Memory Utilization
I have a feeling I am implementing this wrong and because of that I am consuming larger amounts of memory each call to this method... I call this every 5 seconds and overtime the memory utilization goes up and up and up. Can someone review this and point out how I've implemented this wrong? I'm a relative newbie to javascript so don't be too hard on me :)
Code:
get : function() {
if (cip.simulation_mode == 'random')
{
cip.randomnumber2 = Math.floor(Math.random()* 0999999999999999);
cip.url = '_xml/cipfe/simulation.php?rand=' + cip.randomnumber2;
$('simgrouping').update('Randomized');
}
else if (cip.simulation_mode == 'grouped')
{
cip.randomnumber2 = Math.floor(Math.random()* 0999999999999999);
cip.grouping = general.random(0,11);
cip.url = '_xml/cipfe/simulation.php?rand=' + cip.randomnumber2 + '&group=' + grouping;
$('simgrouping').update('Grouped - ' + grouping);
}
if (cip.skip_next_pull == 'false')
{
new Ajax.Request(cip.url,{method: 'post', asynchronous: true, evalScripts: false,
onCreate: function(u) { cip.xmitstart = new Date().getTime();},
onComplete: cip.process,
onSuccess: function(u)
{
document['communication'].src = '_images_icons/' + layout.icon_path + '/monitor_xmit_anim.gif';
var xmittime = new Date().getTime() - cip.xmitstart - cip.xmitoffset;
$('lastcipxmlxfer').update(cip.xmittime + 'ms.');
if (xmittime > cip.interval)
{
var overrun = cip.xmittime - cip.interval
windowz.create('popup','yes','Race Condition','Race condition with an overrun of <font color="red">' + (overrun/1000) + ' seconds</font>. Network latencey or server load may be the cause. CIPfe automatically changed the update interval from ' + (cip.interval/1000) + ' second(s) to ' + ((cip.interval + 1000)/1000) + ' second(s).');
cip.change(cip.interval + 1000);
// send error to server network error table for tracking.
}
// grouping (I removed this, not sure why it was sitting there.
debugstring = '<font color="magenta">grouping</font>: ' + cip.grouping + ' <font color="magenta">interval</font>: ' + cip.interval;
debug.write('<b>cip</b>.<font color="blue">get( )</font>',cip.xmittime,debugstring);
},
onFailure: function(u) { document['communication'].src = '_images_icons/' + layout.icon_path + '/monitor_fail.png'; },
on404: function(u) { document['communication'].src = '_images_icons/' + layout.icon_path + '/monitor_fail.png'; }
});
}
cip.skip_next_pull = 'false'; // set skip pull back to false.
},