将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
Will including all the angular2 bundles in index.html make imports get data from memory instead of requesting it from the server again?
我从angular 2开始,来自angular 1,我对此感到非常满意(表现出色)。
我快速启动了节点后端和糟糕的性能(在firefox中完全加载页面需要40秒和500多个请求!)。我认真地想过回到角度1,一直呆在那里,直到角度3出来(即永远)。
我四处搜索,除了webpack,我还发现了另一个有趣的信息:显然,如果你在index.html文件中加载所有捆绑包,导入语句就不再从服务器请求每个文件,而是从内存中获取数据。听起来很棒!我在index.html中找到了所有相关的、缩小的捆绑包,性能得到了很大的提高(我在firefox中得到了大约10分,在chrome中得到了3分)。与棱角分明的1还有很大差距。
此外,我仍然看到500多个请求,总大小约为7mb。。。所以,我想知道,这些是否仍然从服务器请求文件,或者他们实际上是从内存中获取数据?
如果他们从内存中获取数据,为什么请求仍然存在?我如何检查他们从哪里获取数据?
如果他们仍然从服务器请求数据,一次一个文件,我如何在可用时强制他们从内存(或存储这些捆绑包的客户端)获取数据?
此外,我还能做些什么来提高性能吗?(除了将所有内容缩小为一个文件/使用webpack)
这是我的index.html文件:
<html>
<head>
<title>Angular 2 QuickStart</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--<link rel="stylesheet" href="styles.css">-->
<base href="/">
<!-- 1. Load libraries -->
<!-- Required polyfills, in order -->
<script src="es6-shim/es6-shim.min.js"></script>
<script src="angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="angular2/bundles/angular2-polyfills.min.js"></script>
<script src="systemjs/dist/system.js"></script>
<script src="rxjs/bundles/Rx.min.js"></script>
<script src="angular2/bundles/angular2.min.js"></script>
<script src="angular2/bundles/router.min.js"></script>
<script src="angular2/bundles/http.min.js"></script>
<script src="angular2-cookie/bundles/angular2-cookie.min.js"></script>
<script src="lodash/lodash.min.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.defaultJSExtensions = true;
System.import('main').then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<app>Loading...</app>
</body>
我将公开node_modules和公共目录,所以这一切都很好。
好吧,我加载得又快又好。显然,诀窍是在加载angular2的东西之前配置systemjs;我只是在加载其他东西之前这样做,比如:
<html>
<head>
<title>Angular 2 QuickStart</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/">
<link rel="stylesheet" href="app/style.css">
<!-- 1. Load libraries -->
<!-- Configure SystemJS -->
<script src="systemjs/dist/system.js"></script>
<script>
System.config({ defaultJSExtensions: true });
</script>
<!-- Angular libraries -->
<script src="es6-shim/es6-shim.min.js"></script>
<script src="angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="angular2/bundles/angular2-polyfills.min.js"></script>
<script src="rxjs/bundles/Rx.min.js"></script>
<script src="angular2/bundles/angular2.min.js"></script>
<script src="angular2/bundles/router.min.js"></script>
<script src="angular2/bundles/http.min.js"></script>
<script src="angular2-cookie/bundles/angular2-cookie.min.js"></script>
<!-- Other libraries -->
<script src="lodash/lodash.min.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.import('main').then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<app>Loading...</app>
</body>
</html>
她来了!
相关文章:
- VBA加载网页并提取内存中的数据
- 将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
- 如何在浏览器中触发另存为对话框,以便可以在内存中保存 json 数据
- 我应该如何在Node中管理内存中的数据
- 如何确保我的谷歌图表数据在Javascript中从内存中删除
- 在 KnockoutJS 中更改模型数据时出现 Javascript 内存泄漏
- 在 Emscripten'd C++ 程序中处理数据后,如何修复尝试从 Web worker 发回数据时的“内存不足”错
- 可以在恒定内存中对低维数据进行聚类
- 使用数据URI快速更新图像会导致缓存、内存泄漏
- javascript/nodejs:在大的、分块的数据集上同步调用一组类似的异步函数会导致内存泄漏
- 在appcelerator titanium中进行数据绑定并避免内存崩溃的最佳做法是什么
- NodeJS:你可以使用普通的Javascript对象作为内存中的数据存储吗
- 具有重复jQuery数据表AJAX调用的内存管理
- 在浏览器内存中加载的最大数据量
- Javascript中的内存布局——面向数据vs面向对象设计
- 在Javascript中转换图像到内存流数据
- 从用户那里收集JavaScript内存配置文件数据
- 是否有一个HTML5的方法显示tiff图像数据已经加载到内存
- jQuery.数据导致内存泄漏
- 有没有工具可以查看IE浏览器的内存数据,比如javascript数据