【发布时间】:2015-10-16 01:50:41
【问题描述】:
我想避免初始 JavaScript 渲染视图的显示延迟。我希望用户立即看到内容并让 Angular 从那里获取它。我不想在 Angular ngRoute 启动时替换这个 ng-view,因为可能会发生眨眼。我只希望它在用户到达另一条路线时替换它。
假设这是基本路线'/'。这已经存在于我的 HTML 中,从服务器呈现。
<div ng-view>
<h1>Welcome. I am the first view.</h1>
<p>Please do not replace me until a user has triggered another route.</p>
</div>
我知道一种常见的方法是在 ng-view 中包含一些服务器端代码,当 Angular 加载时它只是替换它。这不是我想要做的。我希望 Angular 加载并了解这实际上已经是我的第一个视图。
关于如何做到这一点有什么创意吗?我看过源代码 - 没有运气。甚至可能是让 Angular 只替换不同的 HTML 的方法。
编辑:
我不希望在服务器端呈现模板以用作 Angular 模板。我希望在服务器端呈现我的整个index.html,这已经包含用户需要看到的初始基本路由的所有内容。
【问题讨论】:
-
尝试搜索预编译的 angularjs 模板。有很多解决方案。
-
将您的初始数据和内容放入
run块内的角度缓存中 -
这似乎是一个毫无意义的微优化,除非您的初始模板非常复杂;目前还不清楚为什么您会立即拒绝为此目的的预编译模板,因为这与您所描述的内容基本相同。
-
加载 Angular 时要加载的预编译模板不是我想要的。在连接速度较慢的移动设备上,Angular 启动前可能需要 6 到 10 秒。可能存在误解或我没有正确解释自己。
标签: angularjs server-side angularjs-routing angular-routing ngroute