当前位置: 首页 > news >正文

在项目中增加网络加载需要考虑什么?

1、下载器

网络加载的第一步肯定是下载,那么选择一个合适的下载器是十分重要的,这个下载器最好支持什么功能?

  1. 多线程下载(同时需要服务端支持,下载时可指定range)

  2. 断点续传

  3. 通用性(其他位置也可以)

  4. 任务队列(任务优先级等)

  5. 暂停、继续

  6. 下载失败文件处理

2、缓存策略

我们熟知的缓存策略可能就是Glide中的图片三级缓存策略了。其实不止图片,所有的缓存策略基本上就是这三级:

1、 内存缓存

2、磁盘缓存

3、网络(严格意义上来讲,这不算是个缓存)

既然是缓存,就需要考虑缓存的清理策略。我们熟知有的LruCache、DiskLruCache。根据项目的实际情况选择即可。

对于磁盘缓存来说,如果你的项目中已经存在磁盘缓存,可能需要将当前的缓存文件类型,纳入到原来的缓存管理中,进行统一处理。

3、文件校验

为什么需要文件校验,其实有很多原因。但大多数无外乎以下几种:

  1. 文件完整性。我们加载损坏的文件,肯定是展示不出内容的。除非只损换了padding,也就是字节填充部分的内容

  2. 文件安全性。我们的文件如果中途被人篡改,我们可以通过此种方式来校验安全性。当然安全性校验一般会通过MD5、SHA256等哈希算法进行校验,会增加读取文件耗时。

  3. 文件校验失败后的重新下载。一般文件校验失败了,也就证明当前缓存是有问题的,或者中间被人篡改了。这时根据当前文件是缓存还是直接下载的文件,去做对应的处理。如果是缓存文件,会直接删除重新下载,如果非缓存文件,可能提示出错等。

http://www.lryc.cn/news/120883.html

相关文章:

  • 阿里云服务器部署RabbitMQ流程
  • 青大数据结构【2014】
  • Ansible Playbook快速部署一主多从MySQL集群
  • 27.Netty源码之FastThreadLocal
  • linux下离线安装docker
  • SQL server 异地备份数据库
  • 高并发系统设计要点
  • Redis 拒绝服务漏洞(CVE-2023-28856)修复处理
  • Android保存网页的方法
  • P2P 网络,PING程序。
  • OPENCV C++(十二)模板匹配
  • 【配置环境】Linux下安装MySQL
  • 【100天精通python】Day30:使用python操作数据库_数据库基础入门
  • android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露
  • arcpy实现kml批量转出为shp 包括shp合并
  • 高等数学:泰勒公式
  • JZ32 从上往下打印二叉树(Java)
  • hackNos靶机
  • 取地址及 const取地址操作符重载
  • 【Linux初阶】进程间通信介绍 管道
  • App 在macOS Catalina下提示已损坏无法打开解决办法:
  • ad+硬件每日学习十个知识点(26)23.8.6 (DCDC的降压电路、升压电路、降压-升压电路,同步整流,选型考虑同步、隔离)
  • Elasticsearch3节点集群配置账号密码安全验证
  • ffmepg滤镜
  • Linux 基础(六)常用命令 - find locate which whereis gzip gunzip tar
  • 【Ajax】回调地狱解决方法
  • 解决Vue根组件设置transition失效的问题
  • 【剑指 Offer 40】最小的k个数
  • vue3+vite在main.ts文件中引入./App.vue报错(./App.vue不是模块)
  • 【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II