当前位置:首页 » 文件管理 » web前端图片缓存

web前端图片缓存

发布时间: 2022-09-01 17:33:34

① web 浏览器缓存 需要前端设置么

浏览器缓存可以由前端设置,但大多数是服务端设置
前端设置缓存通过html文件的meta标签设置相应的缓存时间、过期时间等
但大多数情况下都是服务端返回的响应头中设置这些参数

java课程分享web编程开发都有哪些前端缓存

缓存问题在web前端编程开发领域中是一个非常重要的技术问题,下面我们就一起来了解一下,关于web缓存我们都需要了解哪些知识。


缓存优点

通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说,浏览器充当了重要角色。除此外常见的还有各种各样的代理服务器也可以做缓存。当Web请求到达缓存时,缓存从本地副本中提取这个副本内容而不需要经过服务器。这带来了以下优点:

缓存减少了冗余的数据传输,节省流量

缓存缓解了带宽瓶颈问题。不需要更多的带宽就能更快加载页面

缓存缓解了瞬间拥塞,降低了对原始服务器的要求。

缓存降低了距离延时,因为从较远的地方加载页面会更慢一些。

缓存种类

缓存可以是单个用户专用的,也可以是多个用户共享的。专用缓存被称为私有缓存,共享的缓存被称为公有缓存。

私有缓存

私有缓存只针对专有用户,所以不需要很大空间,廉价。Web浏览器中有内建的私有缓存——大多数浏览器都会将常用资源缓存在你的个人电脑的磁盘和内存中。

公有缓存

公有缓存是特殊的共享代理服务器,被称为缓存代理服务器或代理缓存(反向代理的一种用途)。公有缓存会接受来自多个用户的访问,所以通过它能够更好的减少冗余流量。

新鲜度限值

HTTP通过缓存将服务器资源的副本保留一段时间,这段时间称为新鲜度限值。这在一段时间内请求相同资源不会再通过服务器。HTTP协议中Cache-Control和Expires可以用来设置新鲜度的限值,前者是HTTP1.1中新增的响应头,后者是HTTP1.0中的响应头。电脑培训http://www.kmbdqn.com/发现二者所做的事时都是相同的,但由于Cache-Control使用的是相对时间,而Expires可能存在客户端与服务器端时间不一样的问题,所以我们更倾向于选择Cache-Control。


③ apache web服务器怎么配置图片缓存

LoadMole cache_mole moles/mod_cache.so
LoadMole mem_cache_mole moles/mod_mem_cache.so
<IfMole mod_cache.c>
<IfMole mod_mem_cache.c>
CacheEnable mem /
# cache 40MB
MCacheSize 80960
MCacheMaxObjectCount 21000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 1
MCacheMaxObjectSize 74000
###GDSF 基于缓存命中率和文档大小计算优先级。在必要时,优先级最低的文档被移出缓存
##MCacheRemovalAlgorithm GDSF
#LRU 指定最长时间没有用到的对象将在必要的时候移出缓存
MCacheRemovalAlgorithm LRU
</IfMole>

##传输压缩
LoadMole deflate_mole moles/mod_deflate.so
<IfMole mod_deflate.c>
DeflateMemLevel 7
DeflateWindowSize 15
DeflateBufferSize 8096
DeflateCompressionLevel 7
AddOutputFilterByType DEFLATE DEFLATE text/html text/plain application/x-httpd-php application/x-javascript text/css
AddOutputFilter DEFLATE css js php xml js html
AddOutputFilter DEFLATE css #压缩css文件
AddOutputFilter DEFLATE js #压缩js文件
</IfMole>

④ 2020年Web前端性能优化需要做哪些

今天小编要跟大家分享的文章是关于2020年Web前端性能优化需要做哪些?性能优化一直以来都是前端工程领域中的一个重要部分。很多资料表明,网站应用的性能优化对于提高用户留存、转化率等都有积极影响。可以理解为,提升你的网站性能,就是提升你的业务数据(甚至是业务收入)。

性能优化广义上包含前端优化和后端优化。后端优化的关注点更多的时候是在增加资源利用率、降低资源成本以及提高稳定性上。相较于后端,前端的性能优化会更直接与用户的体验挂钩。从用户体验侧来说,前端服务
5s的加载时间优化缩减80%(1s)与后端服务50ms的响应优化缩减80%(10ms)
相比,用户的体验提升会更大。因此很多时候,与体验相关的性能的瓶颈会出现在前端。下面就来和小编一起看一看吧!


一、html文档结构标签语义化


1、首先什么是语义化呢?


语义化是指用合理HTML标记以及其特有的属性去格式化文档内容。机器在需要更少的人类干预的情况下能够研究和收集信息,让网页能够被机器理解,最终让人类受益。即用正确的标签做正确的事。


2、语义化的好处或者说存在的意义


①有利于搜索引擎抓取


②结构清晰的HTML在团队合作中的作用:代码可读、便于维护、提高开发效率、快速达成共识、利于二次开发。


③有利于盲人屏幕阅读器


二、css、js文件数量及大小


优化一般对于css、js是建议使用外联式来进行导入。我们可以对css、js做相应的规划也可以减少css、js的个数以减少http请求。同时也要注重减少重复代码,注重代码重复利用,以达到用最少的代码干最多的事。同时当项目要投入上线使用的时候,可以对css、js文件进行压缩,文件的减小可以加速文件的链接导入,以便加速网页的加载渲染。


可通过使用Webpack,gulp等工具对Js文件进行合并。


三、图片的数量和大小


多个服务器请求会对站点的性能产生显着的影响。对一张图片进行导入又是一个http请求,因此我们应该减少图片的导入数量以便减少http请求。此处,我们必须提到一个名词“css精灵spirit”。css精灵是指包含多个不同的图标、按钮或图形的单个图像。因此我们可以把多张背景图片合并为一张然后对背景图片进行相应的定位。同时使用PNG8格式的图片相对于GIF来说比较少。而对于内容图片,可以对其进行适当的压缩,可以加快文档内容加载,或者如果是需要用户下载的图片,小的图片可以加快用户下载的速度。


使用较为广泛的Web图片格式有:JPEG/JPG、PNG、WEBP、Base64、SVG。


1.JPEG/JPG


特点是有损压缩,体积小,加载快,不支持透明。


使用场景:JPG适合用于呈现热菜丰富的图片,在日常的开发中,JPG图片经常作为大的背景图、轮播图或是Banner图。比如两大电商网站对大图片的处理,就是对JPG图片应用场景的最佳写照。用JPG来呈现大图片,既可以保留图片的质量,又不会担心图片的体积,是一种比较广泛使用的方案。


缺点:在处理一些矢量图形和logo等这些线条感很强、颜色对比强烈的图片时,认为压缩就导致图片模糊非常明显。另外,JPG图像不支持透明度处理,透明图片只能用PNG来呈现了。


2.PNG-8和PNG-24


特点是无损压缩、质量高、体积大、支持透明


优点:无损压缩的高保真图片格式。8和24都是二进制数的位数,8位的PNG支持256中颜色,24位的PNG可以支持1600万种颜色。在不考虑文件大小只在乎最佳的显示效果时,推荐使用PNG-24。但是在适合使用PNG时会优先选择PNG-8


应用场景:主要用PNG来呈现小的LOGO、颜色简单对比强烈的图片或是背景。


3.SVG


特点是文本文件,体积小,不失真,兼容性好


优点:SVG是一种基于XML语法的图像格式。SVG对图像的处理不是基于像素,而是基于对图像的形状描述。


和JPG、PNG相比较,SVG文件体积更小,可压缩性更强。SVG作为矢量图最大的优点在于图片可以无限放大还不失真,一张SVG图片可以适配多种分辨率。另外SVG是文本文件,可以像写代码一样定义SVG,放在HTML中称为DOM的一部分。也可以把对图像的描述写入以.svg为后缀的文件中,在img标签中引入即可。


4.WebP


优点:WebP是一款比JPG、PNG等在压缩方面更加优越的图片格式,同时也不会影响其图片质量,使用该格式时最好将同名文件格式化,当检测浏览器不兼容时自动切换jpg格式


缺点:是一个相对较新的技术,所以对于目前市面上的浏览器能否完美的兼容,其可用和实用性就变得很现实了,再好的东西如果没有好的兼容性,也是非常难以普及和被广泛使用的


5.Base64


优点:减少请求,加快首屏数据显示。对于jpg格式的图片,每一个图片相当于一次http请求,图片多了的话,服务器耗性能比较严重。而将jpg转化成base64格式的图片,则极大地减少了请求数,因为Base是文本格式。


缺点:base64格式图片比原图大,占用更多存储空间,同时,浏览器不会对该资源缓存。


使用方法:background:url(data:image/png;base64,{img_data})


应用场景:一般对于小于10KB大小的图片进行base64转码。


至于动态图有GIF与APNG:后者APNG这东西是mozilla搞出来的,
它是24位的,而且也是动图,可以容纳1680万种颜色,也是为了取代GIF,但是....也就火狐支持,IE10和chrome,safari全部不行,
如果说gif图片是卡片机的话,APNG就是单反


四、有效性验证


除了根据语义加标记之外,HTML文档还需要用有效的代码来编写,如果代码是无效的,浏览器会尝试解释标记本身,有时候会产生错误的结果。更糟的是,如果发送具有正确的MIME类型的XHTML文档,理解XML的浏览器将不显示无效的页面。因为浏览器需要知道要使用什么DTD(文档类型定义)才能正确地处理页面,所以对页面进行有效性验证要求有DOCTYPE声明。


有效性验证工具径:



W3C验证器(bookmarklet),这是一小段可以存储在浏览器的书签或收藏夹中的Javascript。单击这个书签就会触发Javascript动作。


②可以访问http://validator.w3.org/,通过输入自己的URL来对自己的站点来进行在线验证。


③使用firefox浏览器的可以下载插件FirefoxWebDeveloperExtension


五、雅虎的Web优化最佳实践


1、内容优化


①尽量减少HTTP请求:常见方法包括合并多个CSS文件和JavaScript文件,利用CSSSprites整合图像,Image
map(图像中不同的区域设置不同的链接),内联图象(使用data:URLscheme在实际的页面嵌入图像数据)等。


②减少DNS查找,一般dns查找需要花费20-120ms,Windows的DNS缓存,可以通过ipconfig/displaydns
这个命令来查看。


③避免重定向


④使Ajax可缓存


⑤延迟加载组件:考虑哪些内容是页面呈现时所必需首先加载的、哪些内容和结构可以稍后再加载,根据这个优先级进行设定。



预加载组件:预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问速度。


⑦减少DOM元素数量:页面中存在大量DOM元素,会导致JavaScript遍历DOM的效率变慢。


⑧根据域名划分页面内容:把页面内容划分成若干部分可以使你最大限度地实现平行下载。但要确保你使用的域名数量在2个到4个之间(否则与第2条冲突)。


⑨最小化iframe的数量:iframes
提供了一个简单的方式把一个网站的内容嵌入到另一个网站中。但其创建速度比其他包括JavaScript和CSS的DOM元素的创建慢了1-2个数量级。



避免404:HTTP请求时间消耗是很大的,因此使用HTTP请求来获得一个没有用处的响应(例如404没有找到页面)是完全没有必要的,它只会降低用户体验而不会有一点好处。


2、服务器优化


①使用内容分发网络(CDN):把你的网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。


添加Expires或Cache-Control信息头:对于静态内容,可设置文件头过期时间Expires的值为“Never
expire(永不过期)”;对于动态内容,可使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求。


②Gzip压缩


③设置ETag:ETags(Entity
tags,实体标签)是Web服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制。



提前刷新缓冲区:当用户请求一个页面时,服务器会花费200到500毫秒用于后台组织HTML文件。在这期间,浏览器会一直空闲等待数据返回。在PHP中,可以使用flush()方法,它允许你把已经编译的好的部分HTML响应文件先发送给浏览器,这时浏览器就会可以下载文件中的内容(脚本等)而后台同⑤时处理剩余的HTML页面。



对Ajax请求使用GET方法:当使用XMLHttpRequest时,浏览器中的POST方法会首先发送文件头,然后才发送数据。因此使用GET最为恰当。


⑦避免空的图像src


3、Cookie优化


①减小cookie大小:去除不必要的coockie,并使coockie体积尽量小以减少对用户响应的影响



针对Web组件使用域名无关的Cookie:对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放静态组件是一个好方法,或者也可以在Cookie中只存放带www的域名。


4、CSS优化


①将CSS代码放在HTML页面的顶部


②避免使用CSS表达式:CSS表达式在执行时候的运算量非常大,会对页面性能产生大的影响


③使用来代替@import


④避免使用Filters:IE独有属性AlphaImageLoader用于修正IE
7以下版本中PNG图片的半透明效果,但它的问题在于浏览器加载图片时它会终止内容的呈现并且冻结浏览器。


5、JavaScript优化


①将JavaScript脚本放在页面的底部



将JavaScript和CSS作为外部文件来引用:在实际应用中使用外部文件可以提高页面速度,因为JavaScript和CSS文件都能在浏览器中产生缓存。


③缩小JavaScript和CSS


④删除重复的脚本


⑤最小化DOM的访问:使用JavaScript访问DOM元素比较慢


⑥开发智能的事件处理程序


6、图像优化


①优化图片大小


②通过CSSSprites优化图片


③不要在HTML中使用缩放图片


④favicon.ico要小而且可缓存


7、针对移动优化


①保持组件大小在25KB以下:主要是因为iPhone不能缓存大于25K的文件(注意这里指的是解压缩后的大小)。


②将组件打包成为一个复合文档:把页面内容打包成复合文本就如同带有多附件的Email,它能够使你在一个HTTP请求中获取多个组件。


以上就是小编今天为大家分享的关于2020年Web前端性能优化需要做哪些的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助,想要了解更多Web前端知识记得关注北大青鸟Web培训官网。最后祝愿小伙伴们工作顺利,成为一名优秀的Web前端工程师。


热点内容
linux下sql 发布:2024-10-12 17:19:34 浏览:111
搭建sql服务器 发布:2024-10-12 17:11:25 浏览:820
拼图游戏源码 发布:2024-10-12 16:52:22 浏览:764
luxu776ftp下载 发布:2024-10-12 16:21:32 浏览:767
电脑上怎样压缩文件 发布:2024-10-12 16:12:36 浏览:556
iphone压缩包怎么解压 发布:2024-10-12 16:11:59 浏览:106
刀心点编程 发布:2024-10-12 16:06:29 浏览:537
阿里云服务器反应慢 发布:2024-10-12 16:03:22 浏览:628
丙烯的存储 发布:2024-10-12 15:32:46 浏览:39
plc编程入门视频教程 发布:2024-10-12 15:23:23 浏览:166