【发布时间】:2015-07-27 01:57:30
【问题描述】:
我们有一个 Angular + Ionic 应用程序,我们计划在 Cordova 上运行,但我们正试图追踪它的性能问题。
当在本地或构建的应用程序上运行时,我们在 Chrome 开发工具的“网络”选项卡中看到如下:
- 重复加载 CSS
- XHR 请求获取 Angular UI 路由器链接到的每个模板文件,但尚未访问路由
举个例子:
还有来自 angular.js 源代码的第 3167 行(用星号表示):
append: function(element, node) {
var nodeType = element.nodeType;
if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return;
node = new JQLite(node);
for (var i = 0, ii = node.length; i < ii; i++) {
var child = node[i];
element.appendChild(child); *
}
},
我从未见过类似的东西 - 我们已经检查了所有基础知识(重复的脚本/css 包括等),禁用 Ionic 缓存等。
我正在仔细研究,看看是什么原因造成的,但希望其他人已经看到了这一点,并可以就从哪里开始寻找提供一些建议。
更新
重复的 CSS 似乎是由于我们的引导 Angular 应用程序的 index.html 文件被错误地指向 UI 路由器配置中的状态。
所以根本问题是虚假/意外的 XHR 拉取到应用程序中的所有静态文件(角度 ui 模板、指令模板)。
【问题讨论】:
-
为什么你的 index.html 会被 XHR 请求重新加载?
-
@AndrewMcGivery - 更新的问题 - UI 路由器错误地指向 index.html 文件,并且路由器中的所有内容都通过 XHR“预加载”
-
没有足够的信息来诊断问题。你能在 Plunker 中复制这个问题吗?
-
关于在您的 html 中调用 element.append 的信息不足。您可以在 angular.js 中引发异常并找出导致此问题的原因。你的案子不会发生在我身上,永远不会。
-
所以你能够解决这个问题..这是因为你的 index.html 中的问题??