对搜索引擎友好的图片延迟加载
抱歉,此文章代码缺失,暂不可用。
什么是对搜索引擎友好的图片延迟加载?
即在不改变元素及其属性的标准写法基础上实现延迟加载
现状问题
目前几乎所有的图片延迟加载库都是使用的临时属性代替src属性实现的,这样有两个问题:
1. 对SEO不利。
2. 代码侵入。
实现目标
对SEO友好,支持原生src属性。
无侵入代码。仅引入一个js文件即可,程序自动处理。
高性能。高效处理图片,高频次事件节流,快速滚动图片忽略。
思路
一个页面加载监听器:劫获所有图片,放到队列中。
一个页面滚动监听器:当发生滚动时,将进入视口的图片放入待加载的队列中。
一个图片加载器:每隔一定时间执行一次,将滚动监听器检查出的待加载图片显示出来。
代码
硬盘损坏,代码丢失,要素回忆:
获取图片使用document.images
对scroll事件添加节流机制
对图片设置默认高宽度站位并显示背景颜色
快速滚动时不加载图片,只有当图片出现在视口中一定时间才加载
加载图片时将紧挨着的超出视口的图片也预加载
进入视口判定:判断图片顶边与body顶边的距离(img.offsetTop),如果距离小于body可见区域高度(document.body.clientHeight),说明图片已经进入视野
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义