52 vue 中 image 资源直接使用 路径 和 使用require 的差异

前言

这也是 最近碰到的一个比较有趣的问题

是在 http 请求较多的场景下触发的情况

一般 我们的 Vue 中使用图片的地方, 一般会使用 require(“$imgPath”) 或者 “/$imgPath” 来配置图片的资源  

然后 这个在目标页面 http 请求比较多的情况下, 两者 会有一些 差异, 我们这里来看一下 两者的差异

 

 

参照的两种加载的方式以及情况

两种加载方式如下, 一个是使用 require 函数, 另外一个是直接配置的图片路径

在目标页面 http 请求比较多的情况下 可能图片的 http 请求会排队, 进而导致 目标图片较长时间加载不出来, 而后者不会 直接从 js 中拿到目标图片的 base64 进行加载

016c606d4b814e77ab384eceed4956c9.png

 

 

使用绝对路径加载图片

这个具体的加载的方式取决于客户端, 比如 img 标签, 那就是 chrome 这边自动触发该图片的 http 请求的发送

我们这里 场景下面是 mars3d 的 XXEntity, 我们这里看一下 这里的加载方式, 这个就是 整个调用栈, 由于该部分源码是混淆了的, 这里就不去深究了, 就当成是 浏览器这边自动触发的就行, 接下来我们看一下 客户端 和 服务器 的交互的开销

2ca9b96bbff3423585918dcab77d8e61.png

 

可以看到 图片的这个请求 block 了很久, 请求本身没有太大的开销

chome 这边该请求本地的排队, 花费了 15秒

然后 另外一个较大的开销是 stalled 的开销, 是客户端这边和服务器建立了 tcp连接 到 可以正式传输数据 的时间开销, 可以看到 很大一部分压力是在这里, 这里就需要 看服务器这边的相关配置, 处理了, 同样具体的我们不深究

造成的情况就是, 页面会存在的问题就是, 该图标加载不出来, 图标的附近的其他业务元素正常显示, 就造成页面看起来十分奇怪

1cb6b0c965574e95860d12f4ce1f5cd1.png

 

 

npm run dev 对于 require("./img/red.png") 的这边处理

业务这边 require 函数处理如下

305070cee15b478daa33e0a11e428e22.png

 

具体的加载方式如下, 调用的是为目标 module 生成的 js

cfd86e233d684fb493f0b739359a4a98.png

 

目标 module 的 js 如下, 直接获取的目标 图片的 base64

94280b802bf8455c97769011f2bf0a51.png

 

传递到 BillboardEntity 的时候传入的 style.img 已经是目标图片的 base64 了

有了该图片的数据, BillboardEntity 就可以绘制目标图片了

26873ee19a5f4f4ca9b82b931d8f1c68.png

 

图片相关的处理均是在客户端这边

 

 

npm run build 对于 require("./img/red.png") 的这边处理

该 require 打包之后的结果如下, 转换为了一个函数调用

5e8f25c55c0043769bcced81c2efb427.png

 

目标函数如下, 直接相应的是目标图片的 base64 的字符串信息

ee7c9b1302874ad5b886c4d0c1279c35.png

 

图片相关的处理均是在客户端这边

 

 

完 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式Qt 布局管理器QBoxLayout

一.存在问题 二.布局管理器 三.布局接口函数的使用 TestBtn1.setText("Test Button 1"); TestBtn1.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); TestBtn1.setMinimumSize(160, 30); 使用setSizePolicy,那么 TestBtn1按钮 就会随着…

网页布局案例 浮动

这里主要讲浮动 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>*{padding: 0;margin: 0;}.header{height: 40px;background-color: #333;}.nav{width: 1226px;heig…

计算机网络-TCP/IP 网络模型

TCP/IP网络模型各层的详细描述&#xff1a; 应用层&#xff1a;应用层为应用程序提供数据传输的服务&#xff0c;负责各种不同应用之间的协议。主要协议包括&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;用于从web服务器传输超文本到本地浏览器的传送协议。FTP&…

二维数组定义 求和,最值,求平均值 JS

定义二维数组 二维数组的求和&#xff0c;最值&#xff0c;求平均值 Eg1 // 二维数组 const matrix [[1, 2, 3],[4, 5, 6],[7, 8, 9] ];// 初始化求和、最大值和最小值 let sum 0; let max Number.MIN_VALUE; let min Number.MAX_VALUE;// 遍历二维数组 for (let i 0; i…

yolov5+关键点检测实现溺水检测与警报提示(代码+原理)

往期热门博客项目回顾&#xff1a; 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 //正文开始&#xff01; 人…

数据库mysql--------------脚本增量备份大全

目录 一、数据库上云迁移的方案&#xff1f; 1.1 方案一&#xff1a;使用脱机冷备份 1.2 方案二&#xff1a; 二、脚本增量备份 三、总结 一、数据库上云迁移的方案&#xff1f; 1.1 方案一&#xff1a;使用脱机冷备份 冷迁移----物理冷备 首先需要关闭数据库服务&#xff…

2024免费且保证100%的恢复成功率的数据恢复软件EasyRecovery

EasyRecovery是一款在市场上广受欢迎的数据恢复软件&#xff0c;具备许多强大而实用的功能。首先&#xff0c;它支持多种媒体类型的数据恢复&#xff0c;包括硬盘驱动器、存储设备、光学媒体、多媒体/移动设备以及RAID系统等。这意味着&#xff0c;无论数据是从哪种类型的设备中…

统计XML文件内标签的种类和其数量及将xml格式转换为yolov5所需的txt格式

1、统计XML文件内标签的种类和其数量 对于自己标注的数据集&#xff0c;需在标注完成后需要对标注好的XML文件校验&#xff0c;下面是代码&#xff0c;只需将SrcDir换成需要统计的xml的文件夹即可。 import os from tqdm import tqdm import xml.dom.minidomdef ReadXml(File…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题 信息素养真题及解析第26套

少儿编程 科技素养 信息素养真题第26套 1、本次考试名称STEMA是STEM Assessment 的缩写。在保持第一个和最后一个字母不变的情况下,将 STEMA 的字母排列组合,一共可以组成()个与原先不同的组合。 A、5 B、6 C、12 D、20 答案:A 考点分析:主要考查小朋友们的逻辑思维…

python安装删除以及pip的使用

目录 你无法想象新手到底会在什么地方出问题——十二个小时的血泪之言&#xff01; 问题引入 python modify setup 隐藏文件夹 环境变量的配置 彻底删除python 其他零碎发现 管理员终端 删不掉的windous应用商店apps 发现问题 总结 你无法想象新手到底会在什么地方…

深入理解数据结构(2):顺序表和链表详解

文章主题&#xff1a;顺序表和链表详解&#x1f331;所属专栏&#xff1a;深入理解数据结构&#x1f4d8;作者简介&#xff1a;更新有关深入理解数据结构知识的博主一枚&#xff0c;记录分享自己对数据结构的深入解读。&#x1f604;个人主页&#xff1a;[₽]的个人主页&#x…

与webpack类似的工具还有哪些?区别?

文章目录 一、模块化工具二、详细对比RollupParcelSnowpackVitewebpack 参考文献 一、模块化工具 模块化是一种处理复杂系统分解为更好的可管理模块的方式 可以用来分割&#xff0c;组织和打包应用。每个模块完成一个特定的子功能&#xff0c;所有的模块按某种方法组装起来&a…

赋能工业智能化升级 | 基于ACM32 MCU的工业通用变频器方案

近年来&#xff0c;随着智能制造对节能的更高要求&#xff0c;通用变频器在工业领域的应用愈加广泛。变频器是一种先进的调速控制设备&#xff0c;通过对电源频率的控制可以实现对电机转速的精确调节&#xff0c;从而提高设备的性能和节能效果。 01 变频器概述 变频器&#xf…

图片标注编辑平台搭建系列教程(6)——fabric渲染原理

原理 fabric的渲染步骤大致如下&#xff1a; 渲染前都设置背景图然后调用ctx.save()&#xff0c;存储画布的绘制状态参数然后调用每个object自身的渲染方法最后调用ctx.restore()&#xff0c;恢复画布的保存状态后处理&#xff0c;例如控制框的渲染等 值得注意的是&#xff0…

分享一个nhanes数据报错的解决方案

美国国家健康与营养调查&#xff08; NHANES, National Health and Nutrition Examination Survey&#xff09;是一项基于人群的横断面调查&#xff0c;旨在收集有关美国家庭人口健康和营养的信息。 地址为&#xff1a;https://wwwn.cdc.gov/nchs/nhanes/Default.aspx 今天分享…

二叉树寻找祖先问题-算法通关村

二叉树寻找祖先问题-算法通关村 1 最近公共祖先问题 LeetCode236&#xff1a;给定一个二叉树&#xff0c;找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为&#xff1a;“对于有根树T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足是…

绿联 安装轻量源代码管理器 - Gitea

更多信息点击 1、镜像 gitea/gitea:latest 2、安装 2.1、拉取镜像 2.2、创建容器 本示例中限制了内容最大大小为4GB&#xff0c;也可以不做限制。 2.3、基础设置 开启 交互、TTY、重启策略选择最后一项。 2.4、网络 选择桥接即可。 2.5、存储空间 装在路径必须是“/data”…

车载电子电器架构 —— 电气架构开发计划

车载电子电器架构 —— 电气架构开发计划 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

中国象棋AI在线对弈游戏源码

源码介绍 这是一款html5小游戏&#xff0c;主要功能在于js&#xff0c;带一套皮肤、内置ai算法&#xff0c;有能力的可以自行修改。 源码截图 下载地址 链接&#xff1a;https://pan.baidu.com/s/1fYp1HWsd91nJOdX1M8RFtQ?pwdh2iz 提取码&#xff1a;h2iz

Chrome浏览器 安装Vue插件vue-devtools

前言 vue-devtools 是一个为 Vue.js 开发者设计的 Chrome 插件。它可以让你更轻松地审查和调试 Vue 应用程序。与普通的浏览器控制台工具不同&#xff0c;Vue.js devtools 专为 Vue 的响应性数据和组件结构量身定做。 1. 功能介绍 组件树浏览&#xff1a;这个功能可以让你查…