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