前端面试题2024/9/22整理(包装到简历实习项目里的面试题)

news2024/9/22 5:25:26

文章目录

    • 1.大文件上传相关知识点
      • 1.文件上传的数据类型是哪种?
      • 2.大文件是怎么上传的?
      • 3.如何区分不同的文件?(Hush)
      • 4.Hush值是怎么算的?
      • 5.遇到什么问题?(并发问题:控制多个请求的并发量)
      • 6.后端需要提供哪些接口?

1.大文件上传相关知识点

1.文件上传的数据类型是哪种?

文件上传:如果不考虑文件大小上传,直接调用后端提供的post接口,文件上传必须用Formdata数据类型,Formdata里面携带File对象或Blob对象。

2.大文件是怎么上传的?

分片。
将大文件分片上传到服务器,服务器接收分片后,再将分片组装成一个文件。
如何分片?
核心是使用Blob对象的slice方法(File对象继承与Blob)。
主要流程是:
1.先将大文件用slice方法分片,将分好的片存到一个数组对象中。
2.计算该大文件的Hush值(利用文件内容计算,因此hush值都是唯一的,且不会根据文件名的改变就改变)
3.上传文件,如果该文件已经传过,则实现秒传,如果该文件只上传过部分(即上传了一部分切片,即断点重传),则过滤掉已经传过的切片,只上传未上传的切片。全部切片上传完成后,通知服务器做合并切片操作。

3.如何区分不同的文件?(Hush)

利用Hush,Hush值是通过大文件中的内容计算的,所以Hush值是唯一的,并且不会随着文件的名称改变而改变

4.Hush值是怎么算的?

spark-MD5包
切片过大算hush很费时间,下面的方法既保证了所有的切片都参与了计算,也能保证不耗费很长时间。
1.第一个和最后一个切片全部参与计算
2.中间剩余的切片分别在前面,后面,中间取2个字节参与计算

5.遇到什么问题?(并发问题:控制多个请求的并发量)

我们上传分片的时候是并发上传的,就是多个切片一起上传
但是当时忽略了多个请求同时发送会造成浏览器内存溢出,导致页面卡死了
比如谷歌浏览器,它默认并发数量只有6
所以要定义一个请求池来限制并发,如果请求池中已经有6个切片就要暂时阻塞住切片上传,必须等待请求池中有空余位置时,才能继续上传切片
伪代码如下:

const max = 6 //定义浏览器最大并发请求数
const taskpool = [] //请求池
if(taskpool.length===max){
await promise.race(taskpool)
}

注:Pomise.race的作用就是将多个异步任务包裹起来,当有一个完成的话,那么就会触发then事件。

6.后端需要提供哪些接口?

1.检查文件接口:接收参数:文件的hush值
文件已经上传过,通知客户端不需要再传,秒传成功
文件已经上传过,但是没有传完,告知客户端需要继续传,并告知需要从第几个分片开始传
文件没有上传过
2.上传文件接口:formData类型的file
接收分片文件,保存到临时目录
3.合并接口:接收参数:文件的hush值
合并文件分片,告知前端上传成功,并删除临时文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2154255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows安装docker 本地打包代码

参考文章1:https://gitcode.csdn.net/65ea814b1a836825ed792f4a.html 参考文章2: Windows 安装docker(详细图解)-CSDN博客 一 下载 Docker Desktop 在官网上下载 Docker Desktop,可以从以下链接下载最新版本&#x…

重生之我们在ES顶端相遇第15 章 - ES 的心脏-倒排索引

文章目录 前言为什么叫倒排索引数据结构如何生成如何查询TF、IDF参考文档 前言 上一章,简单介绍了 ES 的节点类型。 本章,我们要介绍 ES 中非常重要的一个概念:倒排索引。 ES 的全文索引就是基于倒排索引实现的。 本章内容建议重点学习&…

基于python的api扫描器系统的设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

『功能项目』QFrameWork拾取道具UGUI【69】

本章项目成果展示 我们打开上一篇68QFrameWork扔到地上UGUI的项目, 本章要做的事情是实现当物品在地上时,点击物品将对应物品转移到道具栏中 制作一个提示UI界面 添加Button组件设置为点击即将父物体隐藏 拖拽到文件夹中在场景中删除 创建脚本&#xf…

Postman cURL命令导入导出

导入cURL命令 cURL是一种用于发出HTTP请求的流行命令行工具。在测试Web应用程序或API时,cURL使您能够直接从命令行进行交互,使用API开发人员社区中常见的完善语法。如果在不同的地方有多个cURL命令,可以将它们导入Postman。 ​ 将cURL命令导入…

医院伤员消费点餐限制———未来之窗行业应用跨平台架构

一、点餐上限 医院点餐上限具有以下几方面的意义: 1. 控制成本 - 有助于医院合理规划餐饮预算,避免食物的过度供应造成浪费,从而降低餐饮成本。 2. 保障饮食均衡 - 防止患者或陪护人员过度点餐某一类食物,有利于引导合…

游戏淡入淡出效果

一、制作UIdocument 注:是全黑的;并且Picking Mode设置为Igore 通过调节display中的值,实现淡入淡出效果 二、建立空物体 增加uiDocument 拖入相关的物体 注:层级必须设置为最高,此处为20,这个效果必须遮…

(done) 声音信号处理基础知识(5) (Types of Audio Features for Machine Learning)

参考:https://www.youtube.com/watch?vZZ9u1vUtcIA 声学特征描述了声音,不同特征捕捉声音的不同方面性质 声学特征有助于我们构建智能声学系统 声学特征分类有: 1.抽象等级 2.时域视野 3.音乐的部分 4.信号域 5.机器学习方法 如下图展示…

828华为云征文 | 云服务器Flexus X实例:开源项目 LangChain 部署,实例测试

目录 一、LangChain 介绍 二、部署 LangChain 2.1 安装 langchain 2.2 安装 langchain_community 2.3 安装 qianfan 三、实例运行 3.1 Chat Models 3.2 LLMs 3.3 Embedding Models 四、总结 本篇文章主要通过 Flexus云服务器X实例 部署开源项目 LangChain&#xff0c…

【Delphi】通过 LiveBindings Designer 链接控件示例

本教程展示了如何使用 LiveBindings Designer 可视化地创建控件之间的 LiveBindings,以便创建只需很少或无需源代码的应用程序。 在本教程中,您将创建一个高清多设备应用程序,该应用程序使用 LiveBindings 绑定多个对象,以更改圆…

[SAP ABAP] 生成表维护视图

SAP由于数据量较大,很多自定义表都需要通过用户自行去维护,一般可以直接在SE16N对数据字典进行维护数据,但不是每个用户都有其操作权限,而且直接在数据字典上操作数据有很高的风险,因此SAP提供了表维护视图生成器&…

算法学习2

学习目录 一.插入排序 一.插入排序 从数组的第一个元素开始,当前元素与其前一个元素进行比较; 大于(或小于时)将其进行交换,即当前元素替换到前一位; 再将该元素与替换后位置的前一个元素进行交换&#xf…

【全网最全】2024年华为杯研赛A题保奖思路+matlab/py代码+成品论文等(后续会更新完整

您的点赞收藏是我继续更新的最大动力! 一定要点击如下卡片链接,那是获取资料的入口! 点击链接加入【2024华为杯研赛资料汇总】:https://qm.qq.com/q/goQLLNwfgQhttps://qm.qq.com/q/goQLLNwfgQ A 风电场有功功率优化分配思路 这是…

分页插件、代码生成器

01-分页插件、代码生成器 分页插件使用 首先在pom.xml文件中导入依赖 然后再mybatis-config.xml文件中写入插件 在测试类中写入方法 在mybatis.xml文件中设置plugins标签里的属性helperDialectkeyi自动检查当前数据库用的什么,不用设置也行,默认就设置了 分页插件里面属性详解…

XXL-JOB分片概念讲解

3. 分片功能讲解 3.1 案例需求: 1.我们现在实现这样的需求,在指定节假日,需要给平台的所有用户去发送祝福的短信 3.2.编码实现: a.初始化数据 1.在数据库中导入xxl_job_demo.sql数据 b.集成Druid&MyBatis 1.添加依赖 &…

VisualPromptGFSS

COCO-20 i ^i i太大,不建议复现

利士策分享,华为三折叠手机:重塑未来科技生活的里程碑

利士策分享,华为三折叠手机:重塑未来科技生活的里程碑 在这个日新月异的科技时代,华为再次以惊人的创新力,引领我们迈向智能设备的全新纪元——华为三折叠手机, 不仅是技术的飞跃,更是对未来生活方式的一次…

初识set,map

已知快速查找: 1.暴力查找 2.排序二分查找(插入删除麻烦) 3.搜索树->二叉搜索树(极端情况n)->平衡树(AVL树,红黑树)(logn高度太高,搜索次数多)->多叉平衡搜索…

发现编程的全新境界——明基RD280U显示器使用体验

前言 在大学的四年里,我几乎每天都泡在实验室,盯着电脑屏幕,一行行地码代码。那时,学校提供的显示器是非常基础的款式,功能简单,几乎没有任何特别之处,甚至配置也比较低。那个时候,…

【MySQL 01】数据库基础

目录 1.数据库是什么 2.基本操作 数据库服务器连接操作 数据库和数据库表的创建 服务器,数据库,表关系 数据逻辑存储 3.MySQL架构 4.SQL分类 5.存储引擎 1.数据库是什么 mysql&&mysqld: mysql:这通常指的是 MySQL …