2016-04-28 3 views
0

Я использую Ajax для своих веб-проектов, но сейчас я хочу полностью его понять. Я попал в эту проблему.Объясните код Ajax для заказа

function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
    document.getElementById("demo").innerHTML = xhttp.responseText;//get response 
    } 
    }; 
    xhttp.open("GET", "ajax_info.txt", true); 
    xhttp.send();//send request 
} 

Посмотрите на код. В моей логике я думаю, что мы должны сначала отправить запрос, а затем получить ответ позже. Итак, почему в коде ajax мы получаем ответ перед отправкой запроса. Я что-то упустил? Спасибо заранее!

ответ

0

Эта часть:

xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
    document.getElementById("demo").innerHTML = xhttp.responseText;//get response 
    } 
    }; 

является определяющим функцию обратного вызова (асинхронный). Эта функция вызывается только при изменении состояния объекта xmlhttprequest (вы привязали его к событию onreadystatechange). Вам нужно определить функцию обратного вызова, прежде чем вы сделаете сам вызов (xhttp.open), иначе он не будет знать, что делать, но сам код не запускается до тех пор, пока не изменится состояние xmlrequestobject.

Смежные вопросы