Javascript中基于类的框架导致浏览器挂起

Javascript中基于类的框架导致浏览器挂起,javascript,extjs,frameworks,backbone.js,Javascript,Extjs,Frameworks,Backbone.js,我之前问过EXT的大型实现会使浏览器崩溃 现在,我发现主干网和three.js也是如此。似乎每个基于类的javascript库都有一个内置的可伸缩性约束,因为无法限制代码加载 在每种情况下,挂起浏览器的都是类实例化,而不是对象实例化。即使是EXT的“延迟加载”也只会延迟对象的实例化,而不会延迟类的实例化,而且浏览器崩溃通常在EXT开始对象实例化阶段之前发生 主干网试图通过将代码分离到视图中来解决这个问题,但只是尝试在每个视图中加载太多的代码,然后看着它崩溃 我不想在这里显得迟钝。当我问“当你实例

我之前问过EXT的大型实现会使浏览器崩溃

现在,我发现主干网和three.js也是如此。似乎每个基于类的javascript库都有一个内置的可伸缩性约束,因为无法限制代码加载

在每种情况下,挂起浏览器的都是类实例化,而不是对象实例化。即使是EXT的“延迟加载”也只会延迟对象的实例化,而不会延迟类的实例化,而且浏览器崩溃通常在EXT开始对象实例化阶段之前发生

主干网试图通过将代码分离到视图中来解决这个问题,但只是尝试在每个视图中加载太多的代码,然后看着它崩溃

我不想在这里显得迟钝。当我问“当你实例化1000个EXT组件时会发生什么”时,我得到的回答是“不要实例化那么多”,响应者只是没有抓住要点

代码是什么并不重要,问题在于可伸缩性限制是什么

在EXT、主干和许多其他JS框架中,基于类的实例化是不平衡的

如何构造基于类的框架以避免同时实例化所有类

但在浏览器中,脚本加载时间是有限的资源,基于大量类的系统必须同时编译,这显然是每个基于类的javascript框架(EXT.Backbone、Three.js等)的可伸缩性问题

有人能说明这些框架是如何可伸缩的吗


4000行代码的任何帮助都是微不足道的。而浏览器崩溃通常意味着无休止的自我维持循环,它们会相互反弹,消耗所有可用内存,因此一般来说,以下是一些可能的原因:

  • 非命名空间框架的名称冲突
  • 使用函数重载原型,并遍历循环对象
  • 执行不力
调试,

  • 获取每个框架的开发副本
  • 在构造函数中设置一些断点
  • 使用javascript探查器查看到底发生了什么

  • 4000行代码根本不算多。而浏览器崩溃通常意味着无休止的自我维持循环,它们会相互反弹,消耗所有可用内存,因此一般来说,以下是一些可能的原因:

    • 非命名空间框架的名称冲突
    • 使用函数重载原型,并遍历循环对象
    • 执行不力
    调试,

  • 获取每个框架的开发副本
  • 在构造函数中设置一些断点
  • 使用javascript探查器查看到底发生了什么

  • 这并不是一个真正的答案,但我认为类/对象的区别在这种情况下并不相关。就JavaScript而言,一切都是一个对象。“类”只是某些框架(如ExtJS)允许您使用的更高级概念

    即使是EXT的“延迟加载”也只会延迟对象的实例化,而不会延迟类的实例化


    ExtJS4确实能够(通过发出AJAX请求)只加载类。

    这不是一个真正的答案,但我认为类/对象的区别与此上下文无关。就JavaScript而言,一切都是一个对象。“类”只是某些框架(如ExtJS)允许您使用的更高级概念

    即使是EXT的“延迟加载”也只会延迟对象的实例化,而不会延迟类的实例化


    ExtJS 4只能够加载类(通过发出AJAX请求)。

    这里的问题到底是什么?您能提供导致上述崩溃的示例代码吗?哪些浏览器?我对EXT的经验有限,没有一个是使用three.js的,还有一些是使用主干的,但没有你所讨论的规模。我正在开发一个大型的单页应用程序(定制框架,更像敲除),但没有遇到这些问题。您真的需要提前创建所有这些对象吗?我们的应用程序只创建当前可见视图所需的视图。你不能做类似的事情吗?与jQuery相比并不公平。jQuery是一个DOM包装器,包含一些CSS、一些AJAX和一些ohter实用程序库。它不尝试做Ext尝试做的事情。还要注意的是,你之前关于一个类似主题的问题被关闭为“不是一个真正的问题”。我不认为你是一个糟糕的程序员——我知道很多伟大的程序员误解了javascript的核心工作原理。你提出的问题没有给任何人提供任何可靠的线索来帮助你,所以我们只剩下“好吧,那么他做错了什么”。这里的问题到底是什么?你能提供导致上述崩溃的示例代码吗?哪些浏览器?我对EXT的经验有限,没有一个是使用three.js的,还有一些是使用主干的,但没有你所讨论的规模。我正在开发一个大型的单页应用程序(定制框架,更像敲除),但没有遇到这些问题。您真的需要提前创建所有这些对象吗?我们的应用程序只创建当前可见视图所需的视图。你不能做类似的事情吗?与jQuery相比并不公平。jQuery是一个DOM包装器,包含一些CSS、一些AJAX和一些ohter实用程序库。它不尝试做Ext尝试做的事情。还要注意的是,你之前关于一个类似主题的问题被关闭为“不是一个真正的问题”。我不认为你是一个糟糕的程序员——我知道很多伟大的程序员误解了javascript的核心工作原理。你提出的问题没有给任何人提供任何可靠的线索来帮助你,所以我们只剩下“好吧,那么他做错了什么事”。我很感激你的建议,并且肯定会看到这对其他人是一个好建议。我个人可以证明,这不是一个错误