如何一个接一个地渲染多个html文件?

时间:2015-07-20 18:36:53

标签: javascript html angularjs node.js optimization

我有很多需要渲染到单个页面的html模板。有没有办法一个接一个地渲染每个单独的模板,这样用户在导航页面之前不必等待所有模板?

每个部分都是模板化的,我正在使用指令在主html文件中访问它们。每个模板也访问一个数据库,所以我认为这会减慢渲染过程。我想我要问的是,是否有一种角度来访问数据并渲染前几个模板并让用户导航页面,而其余模板正在渲染过程中。

<company-header ctrl='infoCtrl' class='company-fixed-header'></company-header>
<div class="wrap">
    <div class='dynamic-container'> 

        <div class='content'>
            <section id='details'>
                <company-Identifiers-List ctrl='infoCtrl'></company-Identifiers-List>
                <contact-Information-List ctrl='infoCtrl'></contact-Information-List>
                <company-Information-List ctrl='infoCtrl'></company-Information-List>
                <regulatory-Filing-List ctrl='infoCtrl'></regulatory-Filing-List>
                <securities-Manuals ctrl='infoCtrl'></securities-Manuals>
            </section>
            <section id="securities">
                <security-info ctrl='infoCtrl'></security-info>
            </section>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

有一种不同的方法可以解决您的问题,即在$ templateCache(https://docs.angularjs.org/api/ng/service/ $ templateCache)中加载您的部分内容。这样,您就不必在需要时为每个视图发出AJAX请求,因此几乎可以立即加载指令的内容。

您可以执行以下操作:

$templateCache.put('company-identifiers-list.html', '<div>your content</div>');
$templateCache.put('company-information-list.html', '<div>your content</div>');

此外,如果您正在使用Grunt,则可以使用grunt-angular-templates自动执行此任务。