发布于 2016-01-20 19:28:04
首选是浏览器兼容性。来自MSN上的XMLHttpRequest API文档。
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Properties
所有浏览器都支持
onreadystatechange作为XMLHttpRequest实例的属性。
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Events
最近的浏览器,包括火狐,除了将
XMLHttpRequest属性设置为处理程序函数之外,还支持通过标准的addEventListenerAPI侦听on*事件。
由于Apps脚本Web应用程序将很快只支持现代浏览器(因为本地模式和模拟模式被削弱),您可以使用这两种浏览器。
发布于 2016-01-22 15:31:50
onreadystatechange火太大了,您可能不需要听它。使用装货 (所有情况包括失败/中止)、加载 (成功)、error、abort事件。
有关详细信息,请参阅XMLHttpRequest。
发布于 2016-03-15 12:25:01
此外,如果您控制了浏览器类型/版本,则可以使用传递给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,而且可能任何addEventListener都不能工作。看看:addEventListener兼容性。我没有通过addEventListener找到xmlhttprequest事件的具体列表。
https://stackoverflow.com/questions/34905828
复制相似问题