Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器可以将多少JavaScript加载到内存中?_Javascript_Angularjs_Browser - Fatal编程技术网

浏览器可以将多少JavaScript加载到内存中?

浏览器可以将多少JavaScript加载到内存中?,javascript,angularjs,browser,Javascript,Angularjs,Browser,我正在做一个大项目,用jQuery前端的RoR编写。我正在添加具有智能依赖注入的AngularJS,但我想知道的是,在页面明显变慢之前,我可以在页面上添加多少javascript?每个浏览器的具体限制是什么 假设我的代码经过很好的分解,并且所有操作都在固定时间内运行,那么在浏览器达到极限(必须有一个极限,因为任何计算机都有有限的RAM和磁盘空间)之前,我可以在javascript中分配多少函数、对象和其他东西(尽管使用javascript时磁盘空间将是一个雄心勃勃的限制) 我在网上看过,但我只看

我正在做一个大项目,用jQuery前端的RoR编写。我正在添加具有智能依赖注入的AngularJS,但我想知道的是,在页面明显变慢之前,我可以在页面上添加多少javascript?每个浏览器的具体限制是什么

假设我的代码经过很好的分解,并且所有操作都在固定时间内运行,那么在浏览器达到极限(必须有一个极限,因为任何计算机都有有限的RAM和磁盘空间)之前,我可以在javascript中分配多少函数、对象和其他东西(尽管使用javascript时磁盘空间将是一个雄心勃勃的限制)

我在网上看过,但我只看到人们问他们可以加载多少资产的问题,即我可以加载多少兆字节等。我想知道浏览器是否设定了实际的计算限制,以及它们之间的区别

--编辑--

对于高度挑剔的人,我想一个更好的问题是

现代web浏览器如何确定分配给页面的资源限制?一个网页允许使用多少内存?一个页面可以使用多少磁盘空间


显然,我使用AJAX,我对渲染优化有相当多的了解。这不是如何让我的页面更快的问题,而是我的资源限制是什么?

虽然从技术上讲,达到客户端机器的极限听起来是一项艰巨的任务,但实际上通过一个意外循环很容易达到这些限制。每个人至少做过一次

测试、编写一个使用大量内存的JS循环非常容易,你会发现你电脑的内存使用率会下降,并且在浏览器崩溃之前也会消耗你的虚拟内存

我想说,根据经验,即使你没有接近你所说的技术极限,访问者/用户的耐心极限也会在资源耗尽之前耗尽


如果加载时间成了问题,那么为了一次加载页面的相关部分,也许有必要看看AJAX解决方案。

这更多地取决于计算机而不是浏览器-CPU速度慢、RAM有限的计算机比结实的桌面机慢得多

一个很好的代理可能是在几个不同的智能手机上测试该站点


此外,速度较慢的设备有时会运行过时的和/或功能不太丰富的浏览器,因此您可以在客户端上执行一些基本的用户代理嗅探或功能检测,然后返回到平面服务器呈现的HTML。

通常,您希望缩小并打包javascript以尽可能减少初始页面请求。您的web应用程序完成所有操作后,ould主要由一个javascript文件组成,但这并不总是可能的,因为某些插件可能与依赖关系管理框架不兼容

我认为一个单页应用程序在初始页面加载(缓存关闭)时开始超过3mb或60个请求开始变得太大和难以控制。你需要开始寻找将复制和粘贴的代码提取为可扩展、可重用对象的方法,并可能将一个大应用程序划分为一个较小的应用程序集合,所有这些应用程序都使用相同的模型库、集合和视图。如果使用RequireJS(我使用的)如果版本中包含的任何依赖项发生了更改,那么在启动任何代码之前,都需要编译不同的版本

现在,关于应用程序的“速度”,请查看所选框架的渲染优化教程。在将模型视图添加到集合中时,一个接一个地添加模型视图等技巧会加快渲染页面的速度,然后尝试一次附加一大块html。小心内存泄漏。确保关闭Reference当在单页应用程序的页面之间切换时,会将垃圾收集到视图中。在视图中创建一个“onClose”方法,确保在视图本身关闭时销毁所有子视图和附加的数据引用,其余的工作将由垃圾收集完成。使用全局变量存储集合和模型。类似于
window.app.data={}
。使用全局视图控制器在应用程序的主要部分之间导航,这将帮助您有效地关闭视图链。尽可能使用延迟加载。使用“基本”模型、集合和视图并扩展它们。这样做将为您以后控制这些内容的全局行为提供更多选项


随着时间的推移,这些都是你从经验中学到的东西,但是如果足够小心,你可以在第一次尝试时创建一个运行良好的单页应用程序。你很可能会发现应用程序设计中存在的问题,所以当这些问题出现时,要准备好重构代码。

浏览器不执行rce固定了资源限制。那太傻了。这确实是一种每台机器/浏览器的情况。我建议除非必要,否则不要超过512 MB的预期使用量,因为这可能会耗尽许多仍然是32位的计算机。否则,我看到并使用了随着时间推移加载超过1 GB代码的网页,运行正常。祝你好运将angular放在jQuery应用程序的顶部…大的设计红旗。最好在angular中进行重写,可以有100000行的脚本,其内存使用少于10000行。不考虑脚本在做什么的情况下进行苹果对桔子的比较问题更适合其他stackexchange站点,如超级用户,因为它实际上不是pr编程问题。涉及很多硬件和操作系统,而不仅仅是浏览器