【前端】DataURL 用法

文章目录

一、基本介绍

  • Data-URL:是以data:为前缀,特殊格式的URL,可以将小文件嵌入在文档中。
js 复制代码
/*
	mediatype:表明数据类型,如image/jpeg表示一个jpeg图片文件,默认值为:text/plain;charset=US-ASCII
	encoding:数据编码方式(默认US-ASCII,BASE64两种)
	data:编码后的数据
*/
data:[mediatype][encoding],data
  • mediatype
类型 描述 示例
text 普通文件 text/plain,text/html,text/css,text/javascript
image 图像文件 image/gif,image/png,image/jpeg,image/bmp,image/webp,image/x-icon,image/vnd.microsoft.icon
audio 音频文件 audio/midi,audio/mpeg,audio/webm,audio/ogg,audio/wav
video 视频文件 video/webm,video/ogg
application 二进制数据 application/octet-stream,application/pkcs12,application/vnd.mspowerpoint,application/xhtml+xml,application/xml,application/pdf
  • 示例:先将文件转成base64编码,再通过Data URL,我们把图像内容内置在HTML 中。
html 复制代码
<!-- 常规url -->
<img src="http://csdn.com/img/test.jpg">
<!-- dataurl -->
<img src="data:image/png;base64,alsdkfj...">

二、优点缺点

优点:

  1. 减少 HTTP 请求,例如图片体积小,这是还占用一个请求就不值得

  2. 能够在离线情况下访问,而不依赖于外部资源的可用性

缺点:

  1. Base64 编码后的数据体积 会比 原数据的体积大
  2. Data URL 形式的图片不被浏览器缓存,每次访问页面时都会重新下载一次。
  3. 由于 Base64 跟 CSS 混在一起,增加了浏览器解析CSS树的耗时
  4. IE678 存在兼容性问题
  5. 不适合懒加载,可读性差,也不利于维护
相关推荐
代码不加糖几秒前
2026 React 面试“通关秘籍”:高频 12 问 + 深度解析(含Hooks源码思想)
前端·react.js·面试
我滴老baby1 分钟前
ReAct推理模式详解让智能体学会边思考边行动
前端·react.js·前端框架
菜鸟小码16 分钟前
MapReduce 核心阶段深度解析:Map 阶段与 Reduce 阶段的作用及执行流程
前端·javascript·mapreduce
步步为营DotNet16 分钟前
深入剖析.NET 11 中 Semantic Kernel 于智能后端集成的创新实践
前端·.net·easyui
@大迁世界24 分钟前
33.如何在 React 中使用内联样式(inline styles)?
前端·javascript·react.js·前端框架·ecmascript
CodeSheep27 分钟前
DeepSeek的最新招人标准,太讽刺了。
前端·后端·程序员
不法30 分钟前
vue 地图路线渲染
前端·vue.js·ubuntu
GISer_Jing33 分钟前
从“工具应用”到“系统重构”:AI时代前端研发的范式转移与哲学思辨
前端·人工智能·学习
我家媳妇儿萌哒哒33 分钟前
Element ui el-dialog 在一个有滚动条的页面,打开一个弹框,完了再打开一个弹框后,滚动条可以滚动,怎么限制不能滚动。
前端·vue.js·ui
得想办法娶到那个女人35 分钟前
Vite + Vue 项目打包为 Electron 桌面应用 完整指南
前端·vue.js·electron