Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor.startup(func)-DOM是什么时候;准备好了吗;在《流星》中?_Dom_Meteor - Fatal编程技术网

Meteor.startup(func)-DOM是什么时候;准备好了吗;在《流星》中?

Meteor.startup(func)-DOM是什么时候;准备好了吗;在《流星》中?,dom,meteor,Dom,Meteor,关于流星启动(func) 在客户机上,DOM准备就绪后,函数将立即运行 什么时候“DOM就绪” 我之所以问这个问题,是因为你可以在Meteor模板中使用许多其他模板(即其他DOM元素),并根据加载这些东西所需的时间(即更多DOM元素),在不同的时间加载许多其他东西 在过去,我已经在Meteor.startup上加载了Javascript文件,但它们仍然加载得太早,因为整个DOM实际上还没有加载 Meteor.startup( function() { //load JS files now

关于流星启动(func)

在客户机上,DOM准备就绪后,函数将立即运行

什么时候“DOM就绪”

我之所以问这个问题,是因为你可以在Meteor模板中使用许多其他模板(即其他DOM元素),并根据加载这些东西所需的时间(即更多DOM元素),在不同的时间加载许多其他东西

在过去,我已经在Meteor.startup上加载了Javascript文件,但它们仍然加载得太早,因为整个DOM实际上还没有加载

Meteor.startup( function() {

  //load JS files now

});

那么,“DOM就绪”是什么意思呢?它绝对不是指“当整个DOM加载时”。

以下是.startup方法在客户端上的实际作用:

Meteor.startup = function (cb) {
  var doScroll = !document.addEventListener &&
    document.documentElement.doScroll;

  if (!doScroll || window !== top) {
    if (loaded)
      cb();
    else
      queue.push(cb);
  } else {
    try { doScroll('left'); }
    catch (e) {
      setTimeout(function() { Meteor.startup(cb); }, 50);
      return;
    };
    cb();
  }
};

Meteor.startup实际上是在所有文件从服务器(javascript文件)完全下载后运行的。如果您将代码放在启动时运行,而不将其放入Meteor.startup中,则可能无法运行,因为它将在JS/html尚未完全下载的地方运行

这是“DOM就绪”时,但不一定是呈现HTML时,因为这(HTML)也是在DOM就绪时呈现的

如果要查找在DOM就绪和页面html就绪后运行的内容,请查找模板的
.rendered
回调-


混淆可能来自JQuery中的
$(document).ready
的概念,但这是适用的,因为页面已经在服务器端呈现,所以您可以假定它也在客户端呈现(因为它是以这种方式下载的)。在Meteor中,页面是在客户端上呈现的,因此存在细微差异。

您能解释一下第二段吗?“因为这在DOM准备就绪时也会呈现”您指的是什么“this”?总之,当所有文件下载完毕时,调用.startup。加载整个DOM并呈现HTML的时间是调用.rendered时。@fuzzybabybunny我指的是HTML。没错。我可能会添加一个特定模板的HTML。使用路由器时,可能会有一些模板在调用路径之前不会呈现(例如,博客模板的/blog)