假設頁面的圖片太多,要如何改善速度?
請問一下
我網站有很多圖片需要加載
但這導致我的網頁開啟速度很慢
請問有什麼方式可以使他變快呢?
https://www.pexels.com/
像這種網站圖片非常多
但是他也能在兩秒內加載完畢甚至更快
這到底怎麼做到的?
補充
我加了懶加載
但是發現好像沒有什麼用
可能是本身圖片真的太大了。。。
因為一開始根本沒有想到圖片檔案會那麼大,每個都3, 4MB
CSS有沒有剪裁的技術能做後天補強?
可以讓圖片加載某個範圍就好?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
楼主的主要问题在于他的图实在是太大了,3,4m的图不适合直接在网页上展示,所以解决方案:
图片上传之前先做压缩处理
列表图和详细图分开
页面展示的图片列表页的图,是更小尺寸的图片,根据你的layout设计来定图片的尺寸。用户点击小图以后,才去加载打开最终那个大图。你可以把你参考的那个网站上,列表页的图,和打开以后的大图,分别保存下来看一下就明白了。这个生成小图的功能,就要在你的php后台去实现了。
最后
最后才是楼上提到的那些优化方法,其中最重要的当然是懒加载,或者叫瀑布流图片。
从图片的角度简单回答一下:
减少初始化时候的加载量,并且达到按需加载的目的
复用TCP连接,压缩HTTP包体积等,使用这种方法可以不将图片放到多个域名下。
常见套路,减少请求大小
常见套路,减少请求
在移动端dns解析影响挺大,
我放几个连接:
无线性能优化:域名收敛
Prefetching, preloading, prebrowsing
主要是 if-not-modified/ e-tag 之类的http响应头
简单可以使用 lighthouse, 现在已经被 chrome 合并到其 devtools 里面了。
------ update
你可以试试渐进式图片
What does the interlaced option in Photoshop do?
When to interlace an image?
总结:
图片懒加载 + gzip压缩
这个网站的懒加载代码是下面这个,它是发一个请求,返回一段 js 代码,然后执行这段代码,往 container 容器里添加新图片。
那个网站也没有加载完毕。
它用的是惰性加载。
就是你没有看到的图片其实并没有加载,你滚动到那里或者快到那里的时候才加载。
看得到的地方,也可以先加载压缩后的图片,然后再加载高清图片,加载完成后替换掉模糊的图片。
首先呢,你给的网站他并不是一下子把图片加载完的,它是滚动的时候加载的,边滚动边加载,不行你可以打开network看看。所以你可以参考它的做法,并不需要一下子将图片加载完毕,按需加载。
lazyload
网站不错。。
压缩图片啊,首页的图片不用加载大图。
https://www.nginx.com/blog/re...
推荐使用nginx Image‑Filter module,performance不错哦!
1.压缩图片
2.CDN
3.设置cache,优先从memory/disk的cache加载图片。
图片3-4m 这本身就是问题