【问题标题】:Meteor: [Load Order] Make JavaScript file load after HTML file is loaded?Meteor:[加载顺序] 加载 HTML 文件后加载 JavaScript 文件?
【发布时间】:2015-06-29 06:04:13
【问题描述】:

加载顺序问题

当我转到 localhost:3000 时,我无法让 Meteor 加载我的 JavaScript 我的 HTML 文件完全加载。问题是我的 JavaScript 一直在加载 before 我的 HTML 文件,并且当我使用 alert();prompt(); 之类的东西时,页面看起来没有加载。我尝试了很多解决方案,例如将我的 JavaScript 文件命名为 main.js 并将我的 HTML 文件放在更深的目录中并使用 <script> 标签。我还阅读了有关此的文档:http://docs.meteor.com/#/full/structuringyourapp 解决方案我已经厌倦了基于文档,例如将文件放入 client/libclient/compatibilitylib 已证明无济于事。我也厌倦了Meteor.startup,并将其文件放在client 文件夹中。 (里面的代码):

Meteor.startup( function () {
  $.get("client/lib/testproject.html")
  $.getScript("client/testproject.js");
});

上述某种解决了我的问题,但它加载了JavaScript文件两次。第一次是之前加载HTML,第二次是之后加载HTML。我不知道使用Meteor.startup 时防止发生第一次JS 加载的方法,因此任何解决方案都值得赞赏。 我所指的JavaScript 文件的代码 很简单。 (全文)

prompt("Hello World!"); 
myList = ["apples", "oranges", "bananas"];
myList.forEach(function(value, index) {
  alert('I have ' + value + ' for dinner.');
});

总结

总结一下我的问题:

  • 我的问题:

    1. 转到本地主机
    2. JavaScript 加载首先
    3. HTML 加载
  • 我需要什么:

    1. 转到本地主机
    2. HTML 加载首先
    3. JavaScript 加载

问题:我怎样才能让我的 JavaScript 仅在我的 HTML 加载后才加载?在这种情况下,我该如何重组我的文件夹、文件名和/或代码以使其按我想要的方式运行?

  • 由于发布的代码非常易于复制,我恳请您 使用类似于我所拥有的设置运行您自己的解决方案,而不是使用一百万个包的设置,因为这对我的情况来说是不必要的,在 Meteor 上,在响应之前。

  • 我在 Meteor 1.1.0.2

这是我的文件夹结构的链接,其中包含 HTML 代码以及我使用的文件名: http://i.imgur.com/24z6bXF.png

【问题讨论】:

  • 真的建议你按照 Discover Meteor 书之类的教程学习,因为很明显你至少需要 Meteor 中的模板回调一些基础。 - discovermeteor.com

标签: meteor


【解决方案1】:

我认为您错过了一个决定性的信息:您应该将 Javascript 代码包装到 Template.yourTemplate.rendered=function () {} 函数中。

这是确保您的相关 html 代码首先正确呈现的流星方式。

【讨论】:

    【解决方案2】:

    首先,Meteor 将始终重新打包您的文件并按特定顺序自动加载它们 (Meteor structuring your app)。 client/compatibility 中的第一个文件,然后是 client/lib 中的第一个文件,然后是其他 JS 文件。

    您还应该重写代码,使其不会在加载时立即执行,例如将所有内容包装在一个函数中。然后,您应该在加载 DOM 时调用此代码,这不一定意味着在 Meteor.startup 中,但也意味着在模板中的 onRendered callbacks 中。

    【讨论】:

    • 不,这不会发生,我现在被困在这个问题上并且它不是那样工作的,从我看到它首先加载客户端/lib,然后是客户端/兼容性,这是完全错误 - 根据他们在文档中所写的内容 -
    猜你喜欢
    • 2015-10-04
    • 2015-10-15
    • 2014-04-11
    • 2012-05-28
    • 2015-08-31
    • 2019-01-23
    • 2016-06-29
    • 2023-03-21
    相关资源
    最近更新 更多