Javascript 单页应用程序性能问题

Javascript 单页应用程序性能问题,javascript,angularjs,Javascript,Angularjs,我们正在使用angular js开发单页web应用程序。我们的问题是,当我们在不同的URL中导航时,越来越多的java脚本被添加到浏览器内存中,从而使应用程序逐渐变慢。当您的应用程序的大小将要增加时,有没有办法提高此类单页应用程序的性能?检查内存泄漏: 删除$rootScope listener、$timeout、$interval、$watch on指令或控制器销毁 删除指令destroy上的事件侦听器 如果速度真的很慢,试着少用手表,使用一次性绑定,使用track by on ng re

我们正在使用angular js开发单页web应用程序。我们的问题是,当我们在不同的URL中导航时,越来越多的java脚本被添加到浏览器内存中,从而使应用程序逐渐变慢。当您的应用程序的大小将要增加时,有没有办法提高此类单页应用程序的性能?

检查内存泄漏:

  • 删除$rootScope listener、$timeout、$interval、$watch on指令或控制器销毁
  • 删除指令destroy上的事件侦听器
如果速度真的很慢,试着少用手表,使用一次性绑定,使用track by on ng repeat。但是,如果你有内存问题,你仍然必须跟踪是什么增加了它

如果您希望轻松提升性能,请在投入生产时不要忘记在应用程序配置中添加以下内容:

$compileProvider.debugInfoEnabled(false);

检查内存泄漏:

  • 删除$rootScope listener、$timeout、$interval、$watch on指令或控制器销毁
  • 删除指令destroy上的事件侦听器
如果速度真的很慢,试着少用手表,使用一次性绑定,使用track by on ng repeat。但是,如果你有内存问题,你仍然必须跟踪是什么增加了它

如果您希望轻松提升性能,请在投入生产时不要忘记在应用程序配置中添加以下内容:

$compileProvider.debugInfoEnabled(false);

最好的方法是只在需要时加载js文件。延迟加载是一种方法。最初只加载主js文件,然后移动到另一个
url
延迟加载所需的js文件

oc.lazyLoad
是解决您问题的好方法

下载
oc.lazyLoad
并将这种依赖注入到你的应用程序中,就像

var myApp=angular.module(“myApp”,“oc.lazyLoad”)

您有一个名为
testModule.js
的js文件,您知道该文件在哪里使用。因此,在转到该URL之前,加载js文件,如下所示

myApp.controller("MyCtrl", function($ocLazyLoad) {
  $ocLazyLoad.load('testModule.js');
});

为了获得更多的清晰和信息,最好的方法是仅在需要时加载js文件。延迟加载是一种方法。最初只加载主js文件,然后移动到另一个
url
延迟加载所需的js文件

oc.lazyLoad
是解决您问题的好方法

下载
oc.lazyLoad
并将这种依赖注入到你的应用程序中,就像

var myApp=angular.module(“myApp”,“oc.lazyLoad”)

您有一个名为
testModule.js
的js文件,您知道该文件在哪里使用。因此,在转到该URL之前,加载js文件,如下所示

myApp.controller("MyCtrl", function($ocLazyLoad) {
  $ocLazyLoad.load('testModule.js');
});

为了更清晰和更详细,您应该将所有JavaScript文件包含在一个文件中,以减少网络I/O。有一些工具可以做到这一点,只需谷歌“JavaScript concat”

您可以更进一步,缩小/丑化您的JavaScript

将JavaScript文件添加到主index.html文件中。您不应该在视图中重新加载它


如果您仍然存在性能问题,那么还有一个更大的问题

您应该将所有JavaScript文件包含到一个文件中,以减少网络I/O。有一些工具可以做到这一点,只有谷歌“JavaScript concat”

您可以更进一步,缩小/丑化您的JavaScript

将JavaScript文件添加到主index.html文件中。您不应该在视图中重新加载它


如果您仍然存在性能问题,那么还有一个更大的问题

尝试使用Angular的ui路由器进行路由。您可以绑定javascript。它实际上每次都减少了http调用。请参阅尝试使用Angular的ui路由器进行路由。您可以绑定javascript。它实际上每次都减少了http调用。请注意使用此技术,因为在某些设置中,增加javascript负载会大幅增加开发代码迭代时间。请注意使用此技术,因为在某些设置中,增加javascript负载会大幅增加开发代码迭代时间。