流星JS在主JavaScript文件。*仍然不正确加载。 最佳做法的加载顺序?(Meteor J

2019-10-20 02:52发布

对于在过去的2个星期,我一直在建立一个流星的项目,我想从谁已经使用并有流星挣扎着人们对加载顺序的一些想法。

就拿这个模板:

http://bootstraptaste.com/free-one-page-bootstrap-template-amoeba/

所有重要的JavaScript文件在index.html的底部引用。 如果您尝试这个端口转移到流星项目,好运气让所有的特效和动画的工作,尤其是那些在main.js

  • 只要留下底部的脚本标记是指一吨的JavaScript和jQuery的动画不会因为流星工作,这是完全有可能的DOM被全部加载之前的JS文件加载。 这打破了很多东西。

  • 一起来看流星命名为主要的任何文件。*将一切之后被加载。

请注意,这似乎只意味着主* 开始一切后加载。 它并没有说什么时候文件完成加载任何东西。 在脚本main.js仍然不起作用。

如果我把所有的脚本标记到自己main.html ,然后附上它index.html为模板,动画仍不起作用。

  • 我试过了

    Template.layout.created =函数(){$( '头')附加( '')。 }

而这并不正常工作。

  • 使用Meteor.startup(FUNC)是非常不可靠的,因为即使“在客户端,功能会立即运行的DOM准备好了,”流星的定义“DOM准备”一切都在DOM加载后不等于”。 “ 所以功能仍然可以运行并不完全加载DOM后。

反正别人有这样有流星的重大问题? 任何最佳做法或变通?

Answer 1:

通常,您不想使用流星脚本标记是。 只需将.js文件添加到您的项目,他们将加载自己。 标准的做法是把jQuery插件等在lib文件夹。 流星载荷的lib文件夹的东西第一。

想到这些东西在流星的方式是与其他框架不同。 一旦你已经把这样的东西skrollr.min.js等进入该项目,那么你可以在任何地方调用它。 同样的协议适用于CSS中使用的是链接标记的情况。

至于做事后的DOM加载你正在寻找

Template.myTemplate.rendered = function ( ) { ... }

在DOM已经呈现在第一次之后这就是所谓的一次。 .created发生在模板的点被加载并因此DOM将不可用呢。

如果没有寻找到你链接的示例模板过于广泛,它看起来像你想放main.js登录到呈现回调适当的模板。

所以,如果你试图重建在现场演示该网页,我会把所有的HTML模板里面,在你的项目中的所有CSS和JS资源,清除所有的链接和脚本标签和main.js东西添加到渲染。



文章来源: Meteor JS javascript files in main.* still don't load correctly. Best practices for load order?