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

防止在非DOM jQuery AJAX分析上加载图像

翁钧
2023-03-14
问题内容

我正在使用jQuery ajax请求来捕获和解析辅助页面上的HTML。查看Chrome和FF的“网络”面板时,我注意到它也会从那里加载图像-
但仅当加载结果时在“成功”回调中使用$(data)。

内容没有加载到当前页面的DOM中,所以我真的很困惑为什么会发生这种情况。

但无论如何,简单地问一下,是否有办法防止这种情况的发生?我需要从结果中获取信息,但是它永远不会碰到主DOM。阻止图像加载直到视图运行的脚本在这里起作用,还是永远不会针对加载的元素触发脚本?请注意,这是针对用户脚本应用程序的,因此我对目标HTML完全没有控制权。

谢谢!


问题答案:

究其原因 ,为什么 发生这种情况是,只要你有一个创建的图像src属性时,图像加载。例如:

var image = document.createElement('img');
image.src = 'example.png';

在将图像附加到DOM之前,它会 立即 由浏览器加载。实际上,通常这是一种优化。例如,它可以用于预加载图像,稍后再使用。

由于jQuery将HTML字符串构建为DOM结构,因此其创建img元素的方式与上述代码段相同。当图像元素存在时,甚至在将其添加到DOM之前,都会从服务器加载文件。

最简单的解决方案img在添加HTML之前先删除HTML 中的所有标签:

html = html.replace(/<img\b[^>]*>/ig, '');

如果这不是一个选择,并且您需要img元素,则可以将src属性重命名为其他名称,或者在不需要它们时将其删除。



 类似资料:
  • 问题内容: 有没有办法用javascript / jquery防止图像加载?我正在从带有图像的html列表构建幻灯片。因此,我想收集所有src数据,然后阻止加载图像。因此,稍后当用户真正需要图像时,我便会加载它。 我在Google上找到了一些延迟加载脚本,但找不到阻止图像加载的方式。 提前致谢。 Edit1: 从答案看来,不可能使用javascript来防止图像加载。 这是一个执行延迟加载的脚本。

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

  • 问题内容: 我正在尝试保存要分析的歌曲信息,但是如果该歌曲已经存在于分析中,我希望我的代码什么也不做。 我在下面尝试过此代码: 上面的代码在日志中给出以下结果: 成功取得4分。歌曲已存在成功检索到4个乐谱。歌曲已存在成功检索到4个乐谱。歌曲已存在成功检索到4个乐谱。歌曲已存在成功成功成功成功成功成功成功成功成功成功成功成功 为什么我的for循环比Objects.count循环更多?以及如何防止解析

  • 我有一个项目创建一些FAT jar通过从EAR加载的webstart使用。这导致了多模块项目中的以下Maven项目 创建FAT JAR的JAR项目 创建webstart WAR的WAR项目 包含服务器应用程序和WebStart的war文件的EAR文件 将三个项目移动到一个pom文件 一些标志/选项/任何内容告诉Maven将工件作为未部署或安装的中间工件来处理 是否存在类似这样或其他解决我问题的方法

  • 问题内容: 旋转屏幕时,WebView会重新加载整个页面。我无法使用此功能,因为我的某些内容包含动态/随机材料。当前,屏幕旋转时会从loadUrl()方法重新加载原始URL。 知道我的代码有什么问题吗? MainActivity.java AndroidManifest.xml 问题答案: 我认为主要问题是您调用了web.loadUrl(webURL); 当saveInstanceState!=

  • 我在我的应用程序中使用导航栏,每次我选择一个项目时,它都会加载一个片段。 我能够使用相同的文本字段和按钮保存片段的状态,但有一个片段可以加载地图、添加标记、集群并执行。 每次我转到另一个菜单项并返回时,它都会重新加载所有内容,例如AsyncTask、Cluster、Markers。我如何停止此片段以不再重新创建地图并在返回时保存状态: Udate 1:我更新了代码,但问题仍然存在 主要活动: 主片