如何管理 DOM 元素

2023-12-04

我已经实现了无限滚动(即当滚动条到达 div 底部时加载记录)。它工作正常,但在页面上加载太多记录后,页面变得太重并导致渲染缓慢。实际上,我正在使用这种技术来替代 gridview,那么在这种情况下我如何管理繁重的 DOM?


  1. 将 DOM 元素减少到最少。
  2. 尽量减少包装纸的数量。
  3. Minimize the acces to the DOM elements, which includes ( yahoo suggestions ):
    • 缓存对访问元素的引用
    • “离线”更新节点,然后将它们添加到树中
    • 避免使用 JavaScript 修复布局
  4. If there is any computation which can be reduced, like getting the number of rows ( don't calculate it everytime, just add the number of the new rows to the current ), cache it ( memoization wikipedia )

如果您对 DOM 元素集合有任何类型的迭代并且不使用 jQuery 进行迭代,请使用此(建议JavaScript 模式):

for (var iteration = 0, limit = lengthOfElements; iteration++; iteration < limit)

or

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

如何管理 DOM 元素 的相关文章

  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 为什么 setTimeout 在 Chrome 中触发两次,而在 IE 或 Firefox 中则不然?

    有人能告诉我为什么 javascript 函数 生成新号码 在 Chrome 中触发两次 但在 IE 或 Firefox 中则不会 使用 Chrome 20 0 1132 57 IE9 和 Firefox 13
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • 如何在“电话:”链接中提供拨打分机号的选项?

    将电话链接设置为 a href Dial a 从移动浏览器中单击它 只有初始号码会传输到拨号器 而不是逗号或扩展名 我试过了p w and ext 也一样 但没有任何作用 p and w分别更改为 7 和 9 使用 Moto X 第一代进行
  • python中小于负无穷大的数字? [复制]

    这个问题在这里已经有答案了 这在 python2 中是可能的 None lt float inf 还有 它always returns True 然而 在 python3 上 这会抛出 TypeError unorderable types
  • 为多个用户主动安装/推送团队中的应用程序

    我有一个关于如何在 Teams 中为多个用户主动安装 推送应用程序 的疑问 我们已将 Bot 应用程序添加为 Teams 应用程序目录的一部分 并且我按照以下有关 Microsoft Teams 中的管理应用程序设置策略的文档来安装应用程序
  • 地图和法律提及

    在 iOS 我的问题是我必须向我的地图添加页脚子视图 它将隐藏合法链接 如何解决这个问题而不被 App Store 拒绝 我可以自己创建另一个合法按钮并将其添加到地图视图中我想要的位置吗 我不知道我能做什么 有一些答案建议您将合法标签移至v
  • Html.Partial 与 Html.RenderPartial 和 Html.Action 与 Html.RenderAction

    在 ASP NET MVC 中 有什么区别 Html Partial and Html RenderPartial Html Action and Html RenderAction Html Partial返回一个字符串 Html Ren
  • 当前上下文中不存在名称“ViewBag”

    我正在尝试在我的应用程序中使用 ViewBag 我拥有所有最近的 dll 最新版本的 MVC 3 但我仍然收到错误 名称 ViewBag 在当前上下文中不存在 我什至卸载并重新安装了 MVC 3 但没有任何变化 另外 我不相信 dll 会出
  • 通过 Gmail 发送电子邮件

    我有一个代码 用于发送电子邮件 Intent i new Intent Intent ACTION SEND i setType text plain i putExtra Intent EXTRA EMAIL new String to
  • 计算中使用的提示或宏变量

    我使用 EG 中的提示管理器创建了一个数字变量 该变量称为 HYr 代表我提取的数据最高年份 运行程序时 我根据最高年份创建了 4 个新变量 这就是我遇到问题的地方 我有以下内容 Let Yr2 HYr 1 Let Yr3 HYr 2 Le
  • Vapor 4:如何将急切加载的父关系映射为不同的格式?

    我在如何返回包含父关系的模型 同时将急切加载的模型映射到不同的形式方面遇到了一些困难 让我们考虑以下 2 个模型 Course and User final class Course Model Content static let sch
  • docker-compose 主机和容器上的持久数据

    我在 docker compose yml 3 0 中遇到卷问题 所以我知道一个卷的行为就像一个挂载 但是我已经设置了一个wiki 当我在docker compose中设置一个卷时 容器上的数据将被删除 隐藏 那么我怎样才能先将数据从容器保
  • 递归搜索并删除数组?

    我正在使用一个多维数组 我希望能够删除与 id 匹配的数组 和所有子数组 我尝试过的功能是 function removeKey key array childKey children if isset array key unset ar
  • 浮动/浮动=奇怪的结果

    我有两个值 一个来自用户输入 另一个来自数据库 var userinput form someInput var valuefromDB GetValue someNumber public float GetValue int id re
  • XSLT 2.0 通过多阶段转换在 HTML 输出中创建增量脚注编号

    这个问题建立在我对我的回答的基础上原问题 有人建议我发布后续内容 这涉及到尝试集成上一篇文章中的 XSL 代码 在上一个问题中 我提出了 TEI XML 文档的简化版本 我正在使用 XSLT 2 0 将其转换为 HTML 完整的 tei 文
  • 如何计算体素大小?

    提供了 DICOM 标头中的以下信息 如何计算体素大小的第三个值 我假设前两个值为 0 515625 和 0 515625 BitsAllocated 16 BitsStored 12 Columns 512 HighBit 11 Imag
  • 为什么 scanf 在提供 double 时返回 0.000000?

    我有以下汇编代码 为 Linux 上的 NASM 编写 This code has been generated by the 7Basic compiler
  • Python - 将日期时间参数传递到 SQL 命令中

    我正在尝试用Python做这样的事情 SQLCommand Delete From s where Date gt s and Date lt s calendar table name required starting date req
  • 使用 ruby​​ 和 active_record 保存时出现弃用警告

    我是 ruby 新手 正在编写一个需要将消息写入数据库日志的小脚本 我使用 ruby 1 9 3 和 active record 但没有 Rails 所有选择语句都工作正常 但我的写入日志函数返回以下错误 DEPRECATION WARNI
  • Python - 时间数据与格式不匹配

    我有以下格式的字符串时间 2016 12 10T13 54 15 294 我使用以下方法来格式化时间 time strptime ts b d H M S Y 这会引发错误 time data did not match format da
  • 使用 shell 变量查找具有多个文件名的 -name

    我有一个find命令查找名称与提到的多个模式匹配的文件 name范围 find L name SystemOut log o name out o name log o name javacore 这可以在命令行成功找到所需的文件 我正在寻
  • 如何管理 DOM 元素

    我已经实现了无限滚动 即当滚动条到达 div 底部时加载记录 它工作正常 但在页面上加载太多记录后 页面变得太重并导致渲染缓慢 实际上 我正在使用这种技术来替代 gridview 那么在这种情况下我如何管理繁重的 DOM 将 DOM 元素减