|
|
1
57
2015更新
回到2012年,如果你想支持所有使用中的主要浏览器,这是不可能的。不幸的是,现在这仍然是一个
Chrome only
特征(非标准扩展
浏览器支持:Chrome 6+ 2012答
简单但正确的答案是 不 . 并非所有浏览器都向您公开此类数据。我认为你应该放弃这个想法仅仅是因为 “手工” 解决方案可能会带来比它解决的更多的问题。
如果你真的想坚持你的想法,你应该把固定内容和动态内容分开。
固定内容不依赖于用户操作(脚本文件、插件等使用的内存)。
但要总结它们,并不是一个简单的方法。您可以实现 跟踪 收集所有这些信息的系统。所有操作都应调用适当的跟踪方法。例如:
包装或覆盖
包装HTML操作,以便同时跟踪添加或删除内容(
如果您在内存中保存大型对象,那么也应该监视它们。 对于事件绑定,应该使用 事件委托 然后它也可以被认为是一个固定的因素。 另一个让您难以正确估计内存需求的方面是,不同的浏览器可能分配不同的内存(对于javascript对象和DOM元素)。 |
|
|
2
39
你可以使用 Navigation Timing API .
|
|
|
3
19
这个问题已经存在5年了,在这段时间里,javascript和浏览器都发生了不可思议的变化。因为现在这是可能的(至少在某些浏览器中),而且这个问题是当你谷歌“javascript显示内存使用率”时的第一个结果,我想我会提供一个现代的解决方案。 内存统计.js: https://github.com/paulirish/memory-stats.js/tree/master 此脚本(您可以在任何页面上随时运行)将显示页面的当前内存使用情况:
|
|
|
4
8
我不知道有什么方法可以让你真正了解浏览器使用了多少内存,但是你可以根据页面上的元素数量使用启发式方法。uinsg jquery,可以
|
|
|
5
4
还有一个叫做Firebug的工具 MemoryBug 但似乎还不太成熟。 |
|
|
6
3
如果您只想查看测试,可以通过开发人员页面在chrome中跟踪内存使用情况,但不确定如何直接在javascript中进行测试。 |
|
|
7
3
我想建议一个与其他答案完全不同的解决方案,即观察应用程序的速度,一旦它降到定义的水平以下,要么向用户显示关闭选项卡的提示,要么禁止打开新的选项卡。例如,提供此类信息的简单类是 https://github.com/mrdoob/stats.js . 除此之外,对于如此密集的应用程序来说,首先将所有选项卡保存在内存中可能并不明智。例如,只保留用户状态(滚动)和每次加载所有数据(最后两个选项卡除外)可能是一个更安全的选项。 最后,WebKit开发人员一直在讨论向JavaScript添加内存信息,但他们已经就不应该公开什么和不应该公开什么进行了大量的讨论。不管怎样,这类信息不太可能在几年内就可以获得(尽管目前这些信息并不太有用)。 |
|
|
8
1
与我开始一个类似的项目完美的问题时机! 没有准确的方法来监控应用程序中的JS内存使用,因为它需要更高级别的权限。正如注释中所提到的,检查所有元素的数量等将浪费时间,因为它忽略绑定事件等。 如果内存泄漏清单或未使用的元素持续存在,这将是一个体系结构问题。确保完全删除关闭的选项卡的内容而不延迟事件处理程序等将是完美的;假设已完成,您可以在浏览器中模拟大量使用,并从内存监视中推断结果(类型 关于:记忆 在地址栏中) 如果你在IE,FF,Safari中打开同一个页面…和Chrome;比导航到 关于:记忆 在chrome中,它将报告内存使用情况 全部的 其他浏览器。整洁! |
|
|
9
0
您可能需要做的是让服务器跟踪其在该会话中的带宽(向其发送了多少字节的数据)。当他们超过限制时,服务器应该发送一个错误代码,而不是通过Ajax发送数据,JavaScript将使用该代码来告诉用户他们使用了太多的数据。 |
|
|
10
0
您可以获取document.documentelement.innerhtml并检查其长度。它将提供您的网页使用的字节数。
这可能不适用于所有浏览器。所以你可以把所有的身体元素都放在一个巨大的分区中,然后在这个分区上调用innerhtml。
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Dr.0000FF · jQuery按钮点击不显示/隐藏内容 1 年前 |
|
|
user28928120 · 如何在jquery中选择所有类? 1 年前 |
|
Eliable · 使点击计数器和进度条协同工作 1 年前 |
|
Jack Maessen · 在处理程序上使用时如何获取输入类型 1 年前 |