美文网首页架构设计前端开发工具篇
网站如何解决图片过大加载慢的问题?

网站如何解决图片过大加载慢的问题?

作者: 游社长 | 来源:发表于2018-07-16 14:02 被阅读325次

    看看这些人的想法能不能帮上你:

    甲:

    1,不太“在乎”用户体验的省事方法:

    图片保存成渐进式的,加载会慢慢变清晰,而不是从上往下依次加载,然后放在 CDN,设置缓存之类。

    2,比较“在乎”用户体验的高端方案:

    判断用户的设备(主要用在移动端)、网络等,分别加载不同质量的图片(例如高端 iPhone wifi 情况下,就可以加载双倍高清图等,蜂窝网络下面,就加载个单倍或者有损压缩过的)。

    或者先加载低质量的图片,让浏览者可以看到,然后再在后台加载更高清的,等加载完了,浏览者还在观看,就插入替换掉。或者先加载低质量小图片列表,然后让用户点击,触发类似 fancybox 的效果,弹窗出现大图片。或者利用资源预加载(三个 HTML5 不常见特性简介)当用户还没打开的时候,就开始加载。还有好多思路,后面想到再补充。

    乙:

    压缩,预加载,缓存,图床。

    丙:

    1.使用缓存

    2.使用CDN加速

    3.使用jq延迟加载图片, 用到那个 加载哪个.

    4.加大服务器宽带

    5.检查服务器硬盘读取速度.

    丁:

    要尽可能的压缩,看用户的忍受程度。jpg 可以用很多方法压缩,png 推荐使用 工具(不过正文图片,显然要选择 jpg 格式的)。

    推荐个压缩图片的神器:

    https://tinypng.com/      如图所示:

    不过缺点就是不能设置压缩比例。只能直接压缩至最小。作为大banner图的有时候清晰度就不够达标。

    戊:

    直接一开始用压缩过的体积小的图,等加载完毕后,再用高清无码图来替换掉

    高清无码的图片随便怎么命名,但是压缩过的命名有要求,那就是必须在原图的名称前面加上相同的便于分辨的标识。比如

    高清图1命名为wozuishuai.jpg 那么相应的压缩图就叫wozuishuai_min.jpg (_min这个随你取名,但是要一致,不能一个叫_min,下一个就成了_small)

    然后,高清图在网页上都不用,用压缩过的图。比如这样子

    这样子,你打开网页的速度就会快很多,但是图片会失真,虽然有的时候不影响使用,但是会影响用户的体验,以及老板拍桌子骂你干什么吃的?

    不用怕,可以用下面这段代码来解决这个问题,这个是基于jq的,要先引入jq

    $(function(){

    //一段正则,匹配所有_min.的图片src属性

    vartest =/_min\./

    //遍历所有的图片节点

    $("img").each(function(index,obj){

    if(test.test($(this).attr("src"))){

    varreSrc = $(this).attr("src").replace(test,".");

    $(this).attr("src",reSrc)

    }

    })

    })

    最后我们用一张图来测试下这个方法的可行性

    其实不用1s,这些图基本上都可以用了,都可以看了,只不过我们这个是东郭先生,滥竽充数,但是最起码能知道图片讲的什么内容。但是,如果只加载高清图,那么,用户势必要等待好几s甚至十几s。这样的话,用户是很容易抛弃这个网站的。

    相关文章

      网友评论

        本文标题:网站如何解决图片过大加载慢的问题?

        本文链接:https://www.haomeiwen.com/subject/nigfeftx.html