Elgg and XMLHttpRequest

is recommended to use XMLHttpRequest in elgg?

is better to use XMLHttpRequest to make ajax calls?

because it was not integrated into the core?

example chat ? use of my CPU is 10%

 

var link = "";
var timerID = 0;
var userName = "<?php if(elgg_is_logged_in()) {
$user = elgg_get_logged_in_user_entity();
echo $user->username; ?>";


// Get the HTTP Object
function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}

// Change the value of the outputText field
function setOutput(){
if(httpObject.readyState == 4){
var response = httpObject.responseText;
var objDiv = document.getElementById("result");
objDiv.innerHTML += response;
objDiv.scrollTop = objDiv.scrollHeight;
var inpObj = document.getElementById("msg");
inpObj.value = "";
inpObj.focus();
}
}

// Change the value of the outputText field
function setAll(){
if(httpObject.readyState == 4){
var response = httpObject.responseText;
var objDiv = document.getElementById("result");
objDiv.innerHTML = response;
objDiv.scrollTop = objDiv.scrollHeight;
}
}

// Implement business logic
function doWork(){
httpObject = getHTTPObject();
if (httpObject != null) {
link = "mod/chatwidget/views/default/widgets/chatwidget/message.php?username="+userName+"&msg="+document.getElementById('msg').value;
httpObject.open("GET", link , true);
httpObject.onreadystatechange = setOutput;
httpObject.send(null);
}
}

// Implement business logic
function doReload(){
httpObject = getHTTPObject();
var randomnumber=Math.floor(Math.random()*10000);
if (httpObject != null) {
link = "mod/chatwidget/views/default/widgets/chatwidget/message.php?all=1&rnd="+randomnumber;
httpObject.open("GET", link , true);
httpObject.onreadystatechange = setAll;
httpObject.send(null);
}
}

function UpdateTimer() {
doReload();
timerID = setTimeout("UpdateTimer()", 3000);
}


function keypressed(e){

if(e.keyCode=='13'){
if($('#msg').val() == ""){
return false;
} else {

doWork();
}
}
}