将包含index.html中的所有angular2包使得导入从内存中获取数据而不是再次从服务器请求数据?

时间:2016-04-30 12:22:51

标签: javascript node.js performance angular systemjs

我从角度2开始,来自角度1,我非常满意(周围表现出色)。

我快速启动了节点后端和糟糕的性能(在Firefox中完全加载页面需要40秒,超过500个请求!)。我认真地想到回到棱角1然后呆在那里直到角度3出来(即永远)。

我在webpack周围搜索了一下,我发现了另一个有趣的信息:显然,如果你在index.html文件中加载所有的bundle,import语句不再从服务器请求每个文件,而是获取他们的数据从记忆里。听起来很棒!我得到了所有相关的,缩小的束我可以找到index.html和性能提高了很多(我在firefox中得到了~10s,在chrome中得到了3s)。与角度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与公共目录一起公开,所以一切正常。

1 个答案:

答案 0 :(得分:0)

好的,我把它装得好又快。显然,诀窍是在加载angular2之前配置systemjs;我只是在加载其他任何内容之前这样做:

  __int64 m64_1 = 1424115525456;
  __int64 m64_2 = 2222222222222;
  __int64 m64_3 = 1111111111111;


    __asm movq mm1, m64_1
    __asm paddd mm1, m64_2
    __asm movq m64_3, mm1

她去了!