javascript - 哪个先发生? WebComponentsReady 还是 dom-change?

标签 javascript polymer

我刚开始使用 Polymer。似乎有两个事件表明内容已准备就绪:

// Listen for template bound event to know when bindings
// have resolved and content has been stamped to the page
app.addEventListener('dom-change', function() {
  console.log('Our app is ready to rock!');
});

// See https://github.com/Polymer/polymer/issues/1381
window.addEventListener('WebComponentsReady', function() {
  // imports are loaded and elements have been registered
});

我想知道是否有必要将它们包装在一起并将代码放在里面,以确保在执行任何脚本之前确保文档已完全加载,例如:

app.addEventListener('dom-change', function() {
  window.addEventListener('WebComponentsReady', function() {
    // scripts go here
  });
});

但是,我不知道在所有浏览器中这样做的正确方法是什么。如果 WebComponentsReady 发生在 dom-change 之前,则内部脚本永远不会执行。

哎呀,这甚至可能不是必需的,因为 polymer 入门套件不会将它们包裹在一起。在那种情况下,哪些类型的脚本应该放在 dom-change 事件中,哪些类型的脚本应该放在 WebComponentsReady 事件中?

最佳答案

使用 native ready 回调作为described here .

<script>
  (function() {
    Polymer({
      is: 'example-element',
      properties: {...},
      ready: function() {
        // access a local DOM element by ID using this.$
        this.$.header.textContent = 'Hello!';
      }
    });
  })();
</script>

关于javascript - 哪个先发生? WebComponentsReady 还是 dom-change?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532005/

相关文章:

ios - iOS 版 Chrome 中的 Polymer - 它不工作,对吗?

javascript - 将 JavaScript for 循环翻译成 Java 并简化

javascript - 在 JavaScript 中添加两个指数数

具有不同按钮的 Javascript 函数

javascript - Bluebird promise 和回调

dart - polymer Dart 中的按钮单击不起作用;需要 polymer 元素

javascript - 如何继承手动扩展的 polymer 元素的样式?

css - polymer :网格布局

javascript - 如何向 polymer 3 中的父组件通知数组突变

javascript - 为什么在媒体查询更新后修改 CSS 规则失败