代码之家  ›  专栏  ›  技术社区  ›  David Underhill

yui:确保dom元素和脚本准备就绪

  •  3
  • David Underhill  · 技术社区  · 14 年前
    1. 如果我将内联脚本放在与之交互的dom元素之后,我是否还应该使用yui 3 domready event ?
      我没注意到任何问题 似乎 就像我可以指望浏览器按顺序加载页面一样。(我已经使用 YUI().use('node', ... 为了确保我需要的yui函数已经加载,因为yui脚本是一个单独的文件。)

    2. 有没有办法加快像yui 2日历这样的小部件的加载速度?
      我装载 appropriate script 在里面 <head> 我页面的元素。我用 YUI().use('yui2-calendar', ... 以确保日历小部件可用。不幸的是,当我用日历加载页面时,这会导致短暂但明显的延迟。如果我忽略了 yui().use('yui2-calendar',… 然后代码就出现了,没有明显的延迟——但我想如果yui脚本没有及时加载,这可能会导致日历根本没有出现?

    3. 关于2,是否可以减少日历的视觉伪影不存在然后出现?
      我为父div指定了一个高度和宽度,这样至少在加载时空间已经分配到了最小的移位量,从而使它稍微好了一点。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Luke    14 年前
    1. 如果访问dom元素的代码在标记中的这些元素之后,则不需要domready。这通常适用于dom脚本,而不仅仅是yui。

    2. yui2 calendar与yahooapis.com/2.8.0r4/build/calendar/calendar-min.js不同。前者包括一些包装代码,用于在yui 3实例环境中对日历api及其依赖项进行沙箱处理。如果要在<head>中包含yui2脚本,可以说应该将其放在<body>的末尾,则不需要使用yui2日历。这样做只需加载两次日历代码。否则,要利用yui 3的动态异步加载,您可以从<head>中删除<脚本,只需使用('yui2-calendar')。通过在yui-min.js种子文件之后的标记中包含yui2-*combo<script>,可以获得加快渲染时间的外观。注意,加载程序将始终获取css文件,因此不需要将其包含在标记中。

      <script src=“http://yui.yahooapi.com/combo?3.1.0/build/yui/yui.js“></脚本>

      <script src=“http://yui.yahooapi.com/combo?2in3.1/2.8.0/build/yui2 yahoo/yui2 yahoo.js&2in3.1/2.8.0/build/yui2 dom/yui2 dom.js&2in3.1/2.8.0/build/yui2 event/yui2 event.js&2in3.1/2.8.0/build/yui2 calendar/yui2 calendar.js“>”lt;/script>

    3. 您可以在页面加载时包含已呈现日历的css和标记,然后呈现到标记容器中。我不认为yui 2日历有逐步增强现有标记的概念,但我可能错了。它应该用生成的标记来清除静态表标记,并激活ui。

        2
  •  1
  •   Delan Azabani    14 年前

    如果是在上述节点之后,那么您不需要 DOMContentLoaded (或DomReady)。