同步和异步请求 您所在的位置:网站首页 圣诞树上的植物 同步和异步请求

同步和异步请求

2023-02-07 15:21| 来源: 网络整理| 查看: 265

在一些需求情况下,必须读取多个外部文件。这是一个标准的函数。该函数使用 XMLHttpRequest 对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

function xhrSuccess() { this.callback.apply(this, this.arguments); } function xhrError() { console.error(this.statusText); } function loadFile(url, callback /*, opt_arg1, opt_arg2, ... */) { var xhr = new XMLHttpRequest(); xhr.callback = callback; xhr.arguments = Array.prototype.slice.call(arguments, 2); xhr.onload = xhrSuccess; xhr.onerror = xhrError; xhr.open("GET", url, true); xhr.send(null); }

用法:

function showMessage(message) { console.log(message + this.responseText); } loadFile("message.txt", showMessage, "New message!\n\n");

实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数“通过“XHR 对象到成功回调函数。

第 1 行声明 XHR 操作成功完成时调用的函数。它又调用已经分配给 XHR 对象(第 7 行)属性的 loadFile 函数(本例中为函数 showMessage)的调用中指定的回调函数。提供给调用函数 loadFile 的附加参数(如果有的话)被“应用”到回调函数的运行中。

第 5 行声明 XHR 操作无法成功完成时调用的函数。

第 7 行存储 XHR 对象,成功回调函数作为 loadFile 的第二个参数给出。

第 12 行将参数赋给 loadFile 的调用。从第三个参数开始,收集所有剩余的参数,分配给变量 XHR 的 arguments 属性,传递给成功回调函数 xhrSuccess,最终提供给函数调用的回调函数(在本例中为 showMessage)xhrSuccess。

第 15 行为其第三个参数指定了 true,表示该请求应该被异步处理。

第 16 行实际启动请求。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有