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