图片加载优化器【附带自动判断重定向链接移除】
简介看完请自行备份或删除,防止占用空间❗原理:移除原本的图片加载,优先加载网页,加载网页后,只加载当前屏幕显示范围的图片。这样可以优化网页加载速度,这只是十几种优化脚本的其中之一❗将图片的加载逻辑进行一个完整的优化,并自动判定重定向链接移除。这可以提高你的网页加载速度,当然不会很明显,但确实能优化速度。注释都有,可以自行检查代码逻辑问题。另外,这个脚本是从我正在写的一个大脚本中剥离出来的,先发个小功能。目前这个大脚本已经写到5000行了,预计不久能完成。以下是详细介绍:
这个UserScript脚本实现了图片的延迟加载功能,并且包括了移除重定向链接的功能。
延迟加载功能:
1. 脚本使用Intersection Observer API来监听页面中的图片元素是否进入可视区域。
2. 当图片元素进入可视区域时,脚本会将其添加到一个任务队列中,准备进行加载。
3. 定义了一个`lazyLoadImages`函数来处理任务队列中的图片元素。
4. `lazyLoadImages`函数会遍历任务队列中的图片元素,对每个未加载的图片进行处理。
5. 如果图片的URL在`images`映射中不存在,说明该图片尚未开始加载,脚本会创建一个新的`Image`对象,并将其设置为该图片的`src`属性,以开始加载图片。
6. 当图片加载成功时,`onload`回调函数会将图片元素的`src`属性更新为真实的图片URL,并给图片元素添加`lazy-loaded`类名,表示图片已经加载完成。
7. 如果加载过程中发生错误(`onerror`事件触发),则会调用`handleError`函数进行错误处理。
8. 当所有图片都加载完成时,脚本会停止观察可视区域的变化。
移除重定向链接的功能:
1. 脚本会检查页面中所有的静态链接(即已经存在的链接元素)是否是重定向链接。
2. 如果链接是重定向链接,脚本会给链接添加一个点击事件处理程序,当点击链接时,如果链接没有其他兄弟元素或者没有其他子元素,脚本会移除该链接元素。
3. 使用Mutation Observer来监听页面中动态添加的链接元素,并对其进行相同的处理。
4. 脚本提供一个按钮来控制是否移除重定向链接,按钮的点击事件会改变脚本的内部状态。
5. 如果脚本启用了移除重定向链接的功能,它会对所有的静态链接进行检查并处理。
6. 动态添加的链接元素会被Mutation Observer监听到,脚本会对其进行相同的处理。
其他功能:
1. 优化性能:使用`optimizePerformance`函数来优化性能,通过延迟处理图片加载和滚动事件,减少过多的计算和处理。
2. 改进错误处理:通过`improveErrorHandling`函数来改进错误处理,打印错误消息和相关信息。
3. 对于已存在的图片元素和动态添加的图片元素进行观察和处理。
4. 使用`init`函数来初始化脚本,包括创建Intersection Observer、Mutation Observer和绑定相关事件等。
5. 使用`waitForDOMContentLoaded`函数来等待DOM内容加载完成后再执行初始化操作。
这个脚本的核心功能是图片的延迟加载,移除重定向链接是一个额外的功能,通过为链接添加点击事件来控制是否移除链接。脚本还包括了一些优化性能和错误处理的功能,以提高脚本的稳定性和用户体验。