“现代”,因为该定义可能会随着时间而改变(特别是我的意思是桌面浏览器)
“句柄”,因为这可能会因机器配置/内存而异,但具体而言,我指的是一般用例。
这个问题是在我试图解决涉及大型数据集的特定问题时想到的。
基本上,每当对特定数据集进行更改时,我都会取回完整的数据集,并且必须在浏览器中呈现这些数据。
因此,例如,通过 websocket,我收到一个推送事件,告诉我数据集发生了变化,然后我必须通过抓取现有 DOM 元素、复制它、使用来自此的数据填充元素来以 HTML 格式呈现此数据集使用类名或其他元素标识符进行设置,然后将其添加回 DOM。
请记住,此数据集中的任何对象 (JSON) 可能有多达 1000 多个子对象,并且可能有多达 10,000 多个父对象,因此您可以看到可能存在返回的实例数据集向上接近 1,000,000 => 10,000,000 个数据点或更多。
现在,当我必须渲染这些东西时,有趣的部分就来了。对于每个数据点,可能有 3 或 4 个标签用于渲染和设置数据样式,并且这些标签中的任何一个都可能有事件监听器(可能在父容器上使用委托(delegate)来减轻负担)。
总而言之,可能需要呈现大量传入信息,我正在尝试找出处理这种情况的最佳方法。
理想情况下,您只想渲染具有更改的单个数据点的更改,而不是重新渲染整个数据集,但由于后端的设计方式,这可能不是一个选项。
我主要关心的是了解浏览器/DOM 的局限性,并通过前端的镜头来看待这个问题。后端肯定会发生一些变化(数据设计、缓存、分页),但这不是这里的重点。
这不是 HTML/DOM 的典型用例,因为我知道存在限制,但它们到底是什么?我们仍然限制在大约 3000-4000 个元素吗?
我有一些 related subquestions为此,我是 actively looking up但我认为与 stackoverflow 社区的其他成员分享一些想法并尝试将有关此问题的一些信息汇总在一起会很好。
现代浏览器在开始变慢/无响应之前可以处理的“合理”数量的 DOM 元素是多少?
如何对浏览器可以处理的 DOM 元素数量进行基准测试?
有哪些strategies用于处理需要渲染的大型数据集(分页除外)?
像 mustache 和 handlebars 这样的模板框架在从 data/json(在前端)渲染 html 方面是否比使用 jQuery 或正则表达式更高效?
最佳答案
您的答案是:1 或数百万。我将复制/粘贴关于 SO 的类似问题的答案。
To be honest, if you really need an absolute answer to this question, then you might want to reconsider your design.
No answer given here will be right, as it depends upon many factors that are specific to your application. E.g. heavy vs. little CSS use, size of the divs, amount of actual graphics rendering required per div, target browser/platform, number of DOM event listeners etc..
Just because you can doesn't mean that you should! :-)"
见:how many div's can you have before the dom slows and becomes unstable?
这确实是一个无法回答的问题,有太多的因素在太多的角度。然而,我会这么说,在单个页面加载中,我使用 1 毫秒的 javascript setinterval 不断向 ID 递增 1 的页面添加新的 div。我的 Chrome 浏览器刚刚超过 20,000,并且正在使用 600MB 内存。
关于html - "modern"浏览器 "handle"一次可以有多少个 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611822/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作