Вы вызываете одновременно два запроса. Так делать нельзя. Есть несколько выходов: или сделайте свою систему кэша с помощью массива (лучший вариант на моё мнение), или последовательно вызывайте запросы (следующий запрос идет только после окончания предыдущего) или создавайте отдельные классы со своими обработчиками для каждого запроса (не очень надежно).
Вот к примеру я сделал в вашем скрипте последовательную систему запросов:
var obj1 = null;
var obj2 = null;
window.onload = function(){
obj1 = document.getElementById('obj1');
obj2 = document.getElementById('obj2');
start1(obj1);
}
function start1(obj){
var url = '/request.php?q=1';
var a = new Ajax(url,obj);
}
function start2(obj){
var url = '/request.php?q=0';
var a = new Ajax(url,obj);
}
function addData(response,obj){
obj.innerHTML = response;
}
function Ajax(url,obj){
var path = "http://localhost/ajax/";
this.url = path+url;
HTTP = this.GetAJAXLoader();
HTTP.open("GET",this.url,true);
HTTP.onreadystatechange = function() {
if (HTTP.readyState==4){
if (HTTP.status == 200){
addData(HTTP.responseText,obj);
if(obj.id == "obj1")
start2(obj2);
}
}
}
HTTP.send(null);
}
Ajax.prototype.GetAJAXLoader = function(){
var r;
if (typeof(window.XMLHttpRequest)!='undefined') {
try { r = new XMLHttpRequest(); }
catch (e) { alert("Ошибка при получении AJAX загрузчика"); }
}
else if (typeof(window.ActiveXObject)!='undefined') {
try { r = new ActiveXObject('Msxml2.XMLHTTP');}
catch (e){
try { r = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e) {alert("Ошибка при получении AJAX загрузчика"); }
}
}
else alert("Браузер не поддерживает AJAX");
return r;
}
Видите? Криво, но теперь всё работает.