当我浏览 Cracked.com 并向下滚动时(即使等待页面加载),文章图片会淡入,而不是像在静态页面上一样一直存在。这不是什么大问题,但它扰乱了我的阅读流程。是否有 Firefox 扩展或设置可以防止这种情况?我使用 AdBlock Plus。
答案1
…文章图像逐渐淡出,而不是已经存在……
您所看到的是一种称为“延迟加载”的前端 Web 开发技术。其理念是,如果一个页面上有 20 张图片,浏览器只会在图片出现在视口中时才加载它们。这可以加快页面加载速度,因为在给定时间内,可能只有 3-4 张图片可以出现在视口中,并且通常由 JavaScript 处理。这意味着图片不会像普通页面那样嵌入 HTML 中,而是在 HTML 中有一个指向图片的指针,JavaScript 函数会在屏幕滚动时处理实际加载。
因此,如果您禁用 JavaScript,网站将无法运行,图像也无法加载。在许多现代网站上,如果禁用 JavaScript,则 100% 不会显示任何内容,因为 JavaScript 如今使用非常普遍,几乎不可能有一个网站没有 JavaScript 作为核心部分。
有关该技术的背景详细信息,请参见描述 jQuery 延迟加载插件的页面这很好地解释了概念/目标:
延迟加载会延迟加载长网页中的图像。视口外的图像直到用户滚动到它们时才会加载。这与图像预加载相反。
在长网页上使用延迟加载将使页面加载速度更快。在某些情况下,它还可以帮助减少服务器负载。
作为一名亲自从事 Web 开发的人,我不能 100% 确定是否可以规避它,因为延迟加载技术的实施方式因网站而异。所以我有根据的猜测是,不行……您所描述的问题无法通过简单的浏览器插件从技术上完成或解决。
另外,你提到广告拦截插件可能有这样的设置。事实上,像 Adblock Plus 这样的工具是通过了解网络上广告投放方式和方法的一致性来工作的。这意味着,无论您访问哪个网站,广告投放都是相当一致的,因此可以对其进行编码以阻止上述广告。如果某个网站存在不一致的情况?Adblock 团队将重点研究如何在其网站上屏蔽广告。
在延迟加载的情况下,创建一个插件或工具来禁用数百万个网站的延迟加载功能的经济动机是什么?这些网站以特殊的方式实现了这一概念,并且在网站设计发生变化时容易发生更多变化?