我仍然无法完全控制Meteor的加载顺序。当使用带有动画的Bootstrap模板时,我使用了很多第三方脚本,并且很多这些脚本都会中断,因为它们是为DOM节点创建的,具有传统的加载顺序。
Meteor不遵循这种传统的加载顺序,因此在脚本触发时很多时候DOM节点都没有准备好。
我制作了一个简单的Meteor应用程序,每次加载特定文件夹或template.rendered回调中的脚本时,控制台都会记录消息。
https://github.com/fuzzybabybunny/meteor-load-order-test
您可以在此处看到它的部署(打开Chrome控制台)
http://load-order-test.meteor.com/
有一些奇怪的事情发生。
有人可以帮助解释为什么我会看到这些奇怪的事情吗?
此外,一旦创建了所有DOM节点,是否有可靠的方法来运行脚本?目前似乎使用jQuery在<script>
内的DOM上的某处附加Template.Layout.rendered
标签将是最简单的。
Template.Layout.rendered = function(){
console.log('layout template rendered and the number of DOM nodes is ' + document.getElementsByTagName('*').length);
$('head').append('<script src="/javascript/domCompleteScript.js"></script>');
};
答案 0 :(得分:0)
根据文档,稍微向下一页:
client / lib / #首先加载客户端的代码
此文件夹用于兼容性JavaScript库,它依赖于在顶层使用var声明的变量作为全局变量导出。执行此目录中的文件而不包装在新的变量范围中。这些文件在其他客户端JavaScript文件之前执行。
我会尝试将第三方脚本放入以下位置,只是为了看看效果最好的方法: