Google chrome extension XMLHttpRequest.onreadystatechange与addEventListener
在阅读XMLHttpRequest以在Google Chrome扩展中使用时,我遇到了一个问题Google chrome extension XMLHttpRequest.onreadystatechange与addEventListener,google-chrome-extension,google-apps-script,xmlhttprequest,Google Chrome Extension,Google Apps Script,Xmlhttprequest,在阅读XMLHttpRequest以在Google Chrome扩展中使用时,我遇到了一个问题 XMLHttpRequest.addEventListener,而示例中的XMLHttpRequest.onreadystatechange 向Google Apps脚本发出GET请求时,这两种方法之间是否有偏好?我不熟悉异步Javascript,在此之前我只是在GAS中工作。首选浏览器兼容性。来自MSN上的XMLHttpRequestAPI文档 onreadystatechange作为XMLHtt
XMLHttpRequest.addEventListener
,而示例中的XMLHttpRequest.onreadystatechange
向Google Apps脚本发出GET请求时,这两种方法之间是否有偏好?我不熟悉异步Javascript,在此之前我只是在GAS中工作。首选浏览器兼容性。来自MSN上的XMLHttpRequestAPI文档
onreadystatechange
作为XMLHttpRequest
实例的属性在所有浏览器中都受支持
包括Firefox在内的最新浏览器还支持通过标准的addEventListener
API来监听XMLHttpRequest
事件,此外还支持为处理程序函数设置*属性
由于应用程序脚本Web应用程序将很快只支持现代浏览器(因为本地模式和模拟模式被贬低),您可以使用任何一种模式。
onreadystatechange
触发太多,您可能不需要听它。使用(所有情况包括失败/中止),(成功),错误
,中止
事件
有关更多信息,请参阅。此外,如果您可以控制浏览器类型/版本,则可以使用传递给onreadystatechange函数的对象执行多边形填充:
var oReq = new XMLHttpRequest();
// This part for modern browsers
oReq.addEventListener("progress", updateProgress, false);
oReq.addEventListener("load", transferComplete, false);
oReq.addEventListener("error", transferFailed, false);
oReq.addEventListener("abort", transferCanceled, false);
// This part for old ones
oReq.onreadystatechange = functionSwitch;
其中functionSwitch将调用正确的函数(将在updateProgress、transferComplete等之间进行选择),以避免双重代码
我见过有人使用Windows XP,可能任何附加的Listener都无法工作。看一看:。我没有通过addEventListener找到xmlhttprequest事件的具体列表。你说得对
onreadystatechange
在每次状态更改时触发,但addEventListener
侦听特定事件(loadend
,load
,error
,abort
)。