Страница 1 из 1

Помогите с простейшим Аяксом, плиз.

Добавлено: 11 дек 2009, 10:29
Dymytry
Парни, помогите разобраться с Аяксом!

Я пытаюсь сделать простенькую функцию чтобы понять как это все работает. Моя функция должна обращаться к Lotus Domino базе и брать оттуда JSON, далее помещать его в таблицу на странице. Весь код я скопировал из статей в инете и чуток изменил. По кнопке на странице вызывается MSDNAjax(url, viewtableid).
Так вот, у меня очень странный результат: все работает, только если в коде функции MSDNAjax стоит alert! Так, как указано в коде ниже. Если я его убираю - ничего не работает. Не могу понять, что я не так сделал.. Как так может быть вообще?

Код: Выделить всё

 
//globals------------------------------------------------------------------------
var oReq = getXMLHttpRequest();
//end of globals--------------------------------------------------------------
 
//standart XMLHttpRequest object initialization-----------------------------
function getXMLHttpRequest()
{
var http_request = false;
 
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
 
return http_request;
}
 
 
//main ajax call------------------------------------------------------------
function MSDNAjax(url, viewtableid)
{
 
if (oReq != null) {
    oReq.open("GET", url, true);
    oReq.send();
    alert('strange alert');
    oReq.onreadystatechange = DisplayView(eval( "(" + oReq.responseText + ")"), viewtableid);
}
else {
    window.alert("AJAX (XMLHTTP) not supported.");
}
}
 
 
//display information----------------------------------------------------
function DisplayView(res, viewtableid)
{
    if (oReq.readyState == 4) {
        if (oReq.status == 200) {
 
                var vec=res.viewentry;
                var thetable="";
 
var tableobj = document.getElementById(viewtableid);
 
                for (i=0; i<vec.length; i++)
                {
                        var rowobj = tableobj.tBodies[0].insertRow(0);
                        for (j=0; j<vec[i].entrydata.length; j++)
                        {
                                var cellobj = rowobj.insertCell(0);
                                cellobj.appendChild(document.createTextNode(vec[i].entrydata[j].text[0]));
                        }
                }
                
        }
    }
}
 

Re: Помогите с простейшим Аяксом, плиз.

Добавлено: 11 дек 2009, 11:21
chur
oReq.onreadystatechange надо задавать до oReq.open