Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在上载多个文件时提高性能_Javascript_Performance_File Upload_Request - Fatal编程技术网

Javascript 在上载多个文件时提高性能

Javascript 在上载多个文件时提高性能,javascript,performance,file-upload,request,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_n

我正在尝试使用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));
}

浏览器不再崩溃,我仍然可以滚动或执行其他任务,但是速度非常慢。您是否需要增强此功能?

所以一次一个太慢,但一次100个太快。一次尝试5次?一次10个?像这样吗?@CertainPerformance抱歉,我的错,上传大约100张图片时速度太慢了。是的,一次只有10个,但不会太久。