当前位置: 首页 > 面试题库 >

防止图像加载

姜志行
2023-03-14
问题内容

有没有办法用javascript /
jquery防止图像加载?我正在从带有图像的html列表构建幻灯片。因此,我想收集所有src数据,然后阻止加载图像。因此,稍后当用户真正需要图像时,我便会加载它。

我在Google上找到了一些延迟加载脚本,但找不到阻止图像加载的方式。

提前致谢。

Edit1:
从答案看来,不可能使用javascript来防止图像加载。
这是一个执行延迟加载的脚本。谁能解释它是如何工作的?似乎当javascript关闭时,它只是正常加载图像,而当它打开时,将在您滚动到图像的位置时加载图像。


问题答案:

如果您在页面上呈现HTML,则即使HTML被隐藏,也将被加载。如果您希望仅在需要时才加载图像,则必须在javascript中的image标记上动态设置源(src)。

编辑1: 您所引用的脚本仅检查您向下滚动页面的距离,然后通过检查其顶部确定哪些图像可见(或几乎可见),请参阅$ .belowthefold和$
.rightoffold扩展名。

当图像的大小都相同时,该示例非常有用,因为它们的容器也可以是相同的大小,并且在延迟加载图像时不会出现任何奇怪的页面大小调整行为。如果图像的高度和宽度变化,您可能会得到一些奇怪的结果。

编辑2:

<script type="text/javascript" charset="utf-8">
    $(document).ready( function() { $("img").removeAttr("src"); } );
</script>

<img src="Chrysanthemum.jpg" />
<img src="Desert.jpg" />
<img src="Hydrangeas.jpg" />
<img src="Jellyfish.jpg" />
<img src="Koala.jpg" />
<img src="Lighthouse.jpg" />
<img src="Penguins.jpg" />
<img src="Tulips.jpg" />


 类似资料:
  • 问题内容: 我正在使用jQuery ajax请求来捕获和解析辅助页面上的HTML。查看Chrome和FF的“网络”面板时,我注意到它也会从那里加载图像- 但仅当加载结果时在“成功”回调中使用$(data)。 内容没有加载到当前页面的DOM中,所以我真的很困惑为什么会发生这种情况。 但无论如何,简单地问一下,是否有办法防止这种情况的发生?我需要从结果中获取信息,但是它永远不会碰到主DOM。阻止图像加

  • 问题内容: 有谁知道在不使用Javascript的情况下在Firefox中同时使图像不可拖动和不可选择的方法吗?似乎微不足道,但这是问题所在: 1)可以在Firefox中拖动并突出显示: 2)因此,我们添加了此内容,但是在拖动时仍可以突出显示图像: 3)因此,我们添加了此内容以解决突出显示问题,但是反直觉地, 图像再次变得可拖动。 很奇怪,我知道!使用FF 16.0.1 那么,有谁知道为什么添加“

  • 问题内容: 如果使用此代码,则div的圆角不会剪切图像(结果是图像的方形角覆盖了div的圆角): 有谁知道如何获得一个圆形的div来防止子图像溢出? 问题答案: 这可能会或可能不会在您遇到的情况下起作用,但请考虑使图像成为CSS背景。在FF3中,以下工作正常: 我不确定还有另一种解决方法-如果您对图像本身应用边框(例如,较深),则会遇到同样的方形角问题。 编辑: 尽管在“为图像添加边框”情况下,图

  • 我目前在PHP上使用Imagick库,并使用Image Magick的调整大小功能。我刚刚了解了减压炸弹以及ImageMagick是如何容易受到它的攻击的。 我已经检查了如何ping图像并验证图像的尺寸,而不实际将其加载到内存/磁盘中。限制ImageMagick的内存和磁盘限制也更安全,这样它就不会只在磁盘上写一个大文件。 我已经读过了,我可以用setResourceLimit()实现这一点。ht

  • 问题内容: 每个响应式网站开发教程都建议使用CSS属性来隐藏内容,以防止内容在移动浏览器中加载,从而使网站加载速度更快。是真的吗 难道不加载图像或它仍然加载在手机浏览器的内容?有什么方法可以防止在移动浏览器上加载不必要的内容? 问题答案: 浏览器变得越来越聪明。今天,如果浏览器(取决于版本)可以确定图像没有用,则可能会跳过图像加载。 该图像具有样式,但是脚本可以读取其大小。如果父级为隐藏状态,Ch

  • 问题内容: 我有几个使用相同的JNI库的类,称为“ jni”。在每个此类中,我在该类的静态初始值设定项中都有一个System.loadLibrary()调用: 唯一的问题是,我只希望System.loadLibrary()被调用一次,因为这可能需要一段时间。有没有一种简便的方法来防止同一库的多次加载? 问题答案: 如果已经加载了库,则随后的任何加载相同库的调用都将被忽略。 : 加载由libname