Web 中读取 e.clipboardData.files 耗时过长原因分析与解决

Posted 张驰Terry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web 中读取 e.clipboardData.files 耗时过长原因分析与解决相关的知识,希望对你有一定的参考价值。

原因分析

在chrome浏览器引擎的底层实现中,这一步隐含了转Blob的操作,当文件非常大时,耗时惊人

// data_transfer.cc
FileList* DataTransfer::files() const 
  auto* files = MakeGarbageCollected<FileList>();
  if (!CanReadData())
    return files;

  for (uint32_t i = 0; i < data_object_->length(); ++i) 
    if (data_object_->Item(i)->Kind() == DataObjectItem::kFileKind) 
      Blob* blob = data_object_->Item(i)->GetAsFile();
      if (auto* file = DynamicTo<File>(blob))
        files->Append(file);
    
  

  return files;

优化手段

可以通过提前判断,当能够获取到html数据时,直接进行解析,跳过读取files的步骤

以上是关于Web 中读取 e.clipboardData.files 耗时过长原因分析与解决的主要内容,如果未能解决你的问题,请参考以下文章

python web开发-flask中读取txt文件内容

如何在 Web 应用程序中读取属性文件? [复制]

无法在Java Web应用程序中读取文件

java web项目 web.xml中如何读取properties配置文件中的值?

无法读取数据库名称 Web 项目

web操作文件的上传到服务器 并且读取出来