代码之家  ›  专栏  ›  技术社区  ›  Nam Thai

哪个先发生?WebComponentsReady或dom更改?

  •  4
  • Nam Thai  · 技术社区  · 9 年前

    我刚开始学习聚合物。似乎有两个事件表明内容已准备就绪:

    // 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更改之前,则内部脚本永远不会执行。

    见鬼,这可能根本没有必要,因为聚合物启动套件没有将它们包裹在一起。在这种情况下,哪些类型的脚本应该放在里面 dom-change 事件以及应该放入哪些类型的脚本 WebComponentsReady 事件

    1 回复  |  直到 9 年前
        1
  •  1
  •   Let Me Tink About It    9 年前

    使用本机 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>