以下是Lynda.com ajax课程中的一些代码。初学者AJAX课程 - 为什么我必须在函数中包装request.readyState?
var request = new XMLHttpRequest();
request.open('GET', 'data.txt');
request.onreadystatechange = function()
{
if (request.readyState===4)
{
console.log(request);
document.writeln(request.responseText);
}
}
request.send();
在过去的教训,我们检查request.status,这是不裹在一个函数的值,它工作得很好。但是现在,没有任何解释,request.readyState检查必须封装在上面看到的函数中,否则它将无法工作。这是怎么回事?
一点也没有”礼貌真的需要一个解释。 request.onreadystatechange是被分配为包含条件的函数的对象(请求)的属性。简而言之,它定义了一个评估就绪状态变化的监听器。你读过XMLHttpRequest的文档吗? https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest –
该函数被称为“处理程序”。只要触发onreadystatechange事件,它就会执行。 –
@MatthewBlancarte由属性值引用的'Function'实例的正确术语是_event listener_。事件*处理程序*是调用事件侦听器的内部代码;有时这个术语被用作事件处理程序属性的同义词。 – PointedEars