寻找加速度

时间:2013-08-28 13:11:50

标签: javascript http angularjs

我在Angular中使用$ routeProvider。每当我去特定路线时,我都会看到登录控制台:

XHR finished loading: "http://localhost:8080/root/partials/view1.html".
XHR finished loading: "http://localhost:8080/root/partials/view2.html".
...

此时,我认为特定页面是在浏览器中缓存的,可以更快地引用。当第一次引用Angular时,如何为后台的所有路径创建XHR?我搜索这样的东西:

for ( /* every page inside routeProvider */ ) {
    // XHRs the page
}

2 个答案:

答案 0 :(得分:3)

documentation中的示例回答了您的问题。

总结一下:如果要从路由表中获取所有模板URL,可以将$templateCache注入run方法(可能还有$route),并将模板插入缓存中。 / p>

HTH!

答案 1 :(得分:2)

我为此目的使用grunt-angular-templates。这是一个连接和安排的艰巨任务。将角度模板预加载到$templateCache。我在构建项目时仅在生产模式下运行它,以避免在开发模式下增加构建时间。 您可以按如下方式使用它(假设您使用grunt):

        ...
        ngtemplates: {
            myProject: {
                options: {
                    prepend: '/',
                    concat: 'out\\app.min.js'
                },
                src: ['app/**/*.html'],
                dest: 'out/templates.js'
            }
        }
       ...

它将所有html文件从app dir汇总到templates.js,然后将templates.js文件追加到app.min.js文件。在生产中,只有app.min.js文件包含所有js代码和模板。对我来说很有用(对你来说也是如此,假设你的js代码大小合适)。