在上传多个文件的同时提高性能

时间:2018-07-18 03:17:48

标签: javascript performance file-upload request

我正在尝试使用Javascript将多个图像上传到服务器。它可以工作,但是在上传大约100张图像时浏览器被惊呆了。

这是我的代码:

首先,一次上传多个文件

uploadListImages(images) {
  images.forEach((image, index) => {
    const formData = new FormData();

    formData.append('image_file', image);
    formData.append('image_name', image.name);

    MyHttpRequestClass
      .myPOST(URL, formData)
      .then(respond => {

        // processing code

      })
      .catch(err => console.error(err));
  });
}

与此同时上传文件时,我不得不等待很长时间,浏览器几乎崩溃了(没有响应消息)。

然后,我更改为通过递归同步上传每个图像。

uploadListImages(images, recursiveIndex = 0) {
  if (recursiveIndex === images.length) {
    return;
  }

  const formData = new FormData();

  formData.append('image_file', images[recursiveIndex]);
  formData.append('image_name', images[recursiveIndex].name);

  MyHttpRequestClass
    .myPOST(URL, formData)
    .then(respond => {

      // processing code

    })
    .catch(err => console.error(err))
    .then(() => this.uploadListImages(images, recursiveIndex + 1));
}

浏览器不再崩溃,我仍然可以滚动或执行其他任务,但是,它非常慢。你有什么要增强的吗?

0 个答案:

没有答案