如何清除内容而不收到可怕的“停止运行此脚本”?对话?

2023-11-30

在 Windows 窗体中,某些控件上有 BeginUpdate/EndUpdate 对。我想要类似的东西,但是对于 jQuery。


我有一个 div,里面有一个 div。像这样:

<div id='reportHolder' class='column'>
  <div id='report'> </div>
</div>

在内部 div 中,我添加了一堆(7-12)对 a 和 div 元素,如下所示:

<h4><a>Heading1</a></h4>
<div> ...content here....</div>

内容的总大小可能是 200k。每个 div 仅包含一个 HTML 片段。其中,还有无数<span>元素,包含其他 html 元素,并且它们嵌套,深度可能为 5-8 层。我认为没什么特别的。 (UPDATE: using 这个答案,我了解到该片段中有 139423 个元素。)

添加完所有内容后, 然后我创建了一个手风琴。像这样:

$('#report').accordion({collapsible:true, active:false});

这一切都很好。

问题是,当我尝试清除或删除报表 div 时,需要很长的时间,并且会出现 3 或 4 个弹出窗口,询问“您想停止运行此脚本吗?”

我尝试了几种方法:

选项1:

    $('#report').accordion('destroy');
    $('#report').remove();
    $("#reportHolder").html("<div id='report'> </div>");

选项2:

    $('#report').accordion('destroy');
    $('#report').html('');
    $("#reportHolder").html("<div id='report'> </div>");

选项3:

    $('#report').accordion('destroy');
    $("#reportHolder").html("<div id='report'> </div>");

在评论中得到建议后,我也尝试过:

选项 4:

    $('#report').accordion('destroy');
    $('#report').empty();
    $("#reportHolder").html("<div id='report'> </div>");

不管怎样,它挂了很长一段时间。

对 Accordion('destroy') 的调用似乎不是延迟的根源。这是删除报表 div 中的 html 内容。

这是 jQuery 1.3.2。

EDIT- 修复了代码拼写错误。

ps:这种情况发生在 FF3.5 和 IE8 上。


问题:

  1. 什么事要花这么长时间?

  2. 如何更快地删除内容?


Addendum

我在“选项 4”期间闯入 FF 中的调试器,我看到的堆栈跟踪是:

data()
trigger()
triggerHandler()
add()
each()
each()
add()
empty()
each()
each()
(?)()    // <<-- this is the call to empty()
ResetUi()  // <<-- my code
onclick

我不明白为什么add()在堆栈中。我正在删除内容,而不是添加内容。恐怕在删除(全部)的上下文中,jQuery 做了一些幼稚的事情。就像它抓取 html 内容一样,文本是否会替换以删除一个 html 元素,然后调用 .add() 放回剩余的内容。

有没有办法告诉 jQuery 在从 dom 中删除 HTML 内容时不传播事件?

在 Windows 窗体中,某些控件上有 BeginUpdate/EndUpdate 对。我想要类似的东西,但是对于 jQuery。


related:
jquery:最快的 DOM 插入?


您应该尝试绕过 jQuery 并在销毁手风琴后自行清空内容:

$('#report')[0].innerHTML = '';

这会快得多,但可能会导致 IE 泄漏内存(jQuery 竭尽全力确保没有引用阻止 IE 进行垃圾收集,这也是删除数据如此缓慢的部分原因)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何清除内容而不收到可怕的“停止运行此脚本”?对话? 的相关文章

  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 试图隐藏选择列表中的选项..不适用于 chrome 和 ie

    我有一个选择列表 其中有很多选项 根据某些输入 我想从选择列表中隐藏一些选项 为了隐藏选择列表中的选项 我编写了jquery 例如 selectlist1 option each function this hide 但这段代码似乎只适用于
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 如何在React中动态分配属性?

    这是一个有两个参数的函数 我要创建的标签的名称 具有以下属性的对象 Using React 我创建一个组件并将该元素渲染到 DOM 问题是我想向元素添加属性 但它不允许循环在元素内设置属性 var Element function elem
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • javascript - 如何获取对象名称或关联数组索引名称?

    我有一个像这样的 JSON 对象 var list name1 element1 value1 name2 element1 value2 如何提取所有 nameX 字符串值 例如 假设我想将它们连接在一个字符串中输出 例如 name1 n
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • 如何跨多个文件跨越 javascript 命名空间?

    我永远忽略了javascript 几年前我开始使用 jQuery 这样我就可以过得去 但随着我开始更多地进行 TDD 我昨天决定真正深入研究 javascript 之后可能还有咖啡脚本 在我的 ASP NET Web 窗体应用程序中 我有很
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • 触发 jQuery UI 滑块事件

    如何触发更改事件jQuery UI 滑块 http docs jquery com UI Slider 我以为会是 slider trigger slidechange 但这没有任何作用 完整的示例脚本如下
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • 将 System.ComponentModel 默认值属性内的 DateTime 属性的默认值设置为 DateTime.Now

    有谁知道如何使用 System ComponentModel DefaultValue 属性指定 DateTime 属性的默认值 例如我尝试这个 DefaultValue typeof DateTime DateTime Now ToStr
  • 父级和子级复选框

    div div
  • 类型错误:“int”对象不可调用

    鉴于以下情况 a 23 b 45 c 16 round a b 0 9 c 运行上面的命令会输出错误 TypeError int object is not callable 如何将输出舍入为整数 在代码的其他地方 您有类似这样的内容 ro
  • Makefile - 找不到共享库

    我有一个 C Linux 项目的 Makefile MODE dbg DIR somdir MODE SRC FILES a cpp b cpp H FILES a h LDFLAGS L DIR lib linux Wl R ORIGIN
  • 如何优化 vlookup 以获得高搜索次数? (VLOOKUP 的替代方案)

    我正在寻找 vlookup 的替代方案 在感兴趣的上下文中提高性能 上下文如下 我有一个很大的 key data 数据集 100 000 条记录 我想对数据集执行大量VLOOKUP操作 典型用途是对整个数据集重新排序 我的数据集没有重复的键
  • Android 地图 API v2 中的彩色折线

    我想在 android 地图 api 版本 2 中绘制折线 我希望它有多种颜色 最好有渐变 但在我看来 折线只允许有单色 我怎样才能做到这一点 我已经有了 api v1 覆盖层来绘制我喜欢的内容 所以大概我可以重用一些代码 public c
  • 在Python中获取具有预先指定扩展名的文件基名

    我有以下字符串 path1 path2 foo bar qux txt 我想要做的是通过指定扩展名来提取基本名称 如果我将扩展定义为 bar qux txt那么基本名称是 foo 那么如果扩展名是 qux txt那么基数是 foo bar
  • Matplotlib 视频创建

    编辑 欧内斯特的重要性提供了答案 但是我仍然邀请大家解释 为什么savefig逻辑不同于animation logic 我想制作视频matplotlib 我浏览了手册和示例 但我就是不明白 关于matplotlib 我总是复制示例 因为经过
  • 关注 R 中的startsWith 和多种模式

    我注意到一个问题或疑虑startsWith 功能 以下代码显示两个不同的选择 第一个行为正常 是这样的代码块 dt test lt data table a c abcd poo abla ba id c 1 2 3 4 dt test s
  • 如何将 iOS 设备键盘更改为特定语言

    在iOS中 开发者可以获取当前设备语言和区域设置 但是 如果我们想根据用户的偏好将键盘设置为特定语言 区域设置 当用户位于应用程序的不同部分时 该怎么办 在我的应用程序中 有多种语言 我希望向用户显示阿拉伯语键盘 例如 当用户位于阿拉伯语部
  • 序列化 Drawable 时出现问题

    我有一个对象 它具有三个字段 两个字符串和一个Drawable public class MyObject implements Serializable private static final long serialVersionUID
  • 按作者列出类别〜WITH COUNTER〜(Wordpress)

    这是我得到的代码 它给出了给定作者已发表的类别的列表 但是 我非常希望类别名称旁边有一个数字 告诉作者在不同类别中发表了多少篇文章 有谁知道一个技巧吗 谢谢
  • 无需安装即可使用 SqlServer CE

    Given 干净的机器 不存在 SQL Server CE 一组 sdf 文件 Sql Server CE 数据库 不管它们是如何到达那里的 相关 Sql Server CE 的 DLL sqlceca35 dll sqlcecompact
  • 使用 angularjs 过滤两个选定日期之间的表数据时出现问题

    我正在根据两个选定的日期过滤表格内容 它确实过滤了日期 但结果不正确 dateRange Filter 写在控制器中 生产控制员 angular module app controller ProductionController scop
  • 如何即时播放非 PCM 文件或将其转换为 PCM?

    以下代码适用于某些 wav 文件 但适用于其他文件时 我得到 InvalidOperationException 未处理 Message Sound API 仅支持播放 PCM 波形文件 var webClient new WebClien
  • 在 Java 中将一系列图像转换为视频?

    目前 功能原型拥有工作所需的一切 一个半透明窗口 可以轻松调整您想要记录的位置的大小 多个线程来管理屏幕截图等 但我需要它完成的最后一项任务却没有完成我几个月了 我需要转换所有转储到我创建的文件夹中的图像temp 一切完成后我将其删除 放入
  • 如何在 PHP 中从 csv 文件中提取数据

    我有一个 csv 文件 如下所示 lines 0 text with commas another text 123 text 5 lines 1 some without commas another text 123 text line
  • 赋值和序列点:这怎么有歧义?

    考虑 C 代码a a a 没有用于赋值的序列点 因此此代码在编译有关未定义操作的警告时会产生警告a 可能的值是什么a这里可以有吗 这好像是a不可能改变价值观 这里实际上是否存在未定义的行为 或者编译器只是懒惰 序列点违规的未定义行为规则对于
  • 将图像添加到 JavaFX TableView 列中

    我是 Java 和 OOP 新手 并且陷入了向 tableview 列添加图像的困境 代码似乎有效 我可以看到学生的姓名正确 但图像未显示在列中 我收到此错误并且无法理解如何使其工作 javafx scene control cell Pr
  • 如何清除内容而不收到可怕的“停止运行此脚本”?对话?

    在 Windows 窗体中 某些控件上有 BeginUpdate EndUpdate 对 我想要类似的东西 但是对于 jQuery 我有一个 div 里面有一个 div 像这样 div class column div div div 在内