代码之家  ›  专栏  ›  技术社区  ›  TCCV

jQuery,在哪里加载函数最佳实践

  •  2
  • TCCV  · 技术社区  · 16 年前

    例如,假设我有以下几点:

    <div id="list">
       <ul>
          <li>some</li>
          <li>stuff</li>
          <li>here</li>
       </ul>
    </div>
    

    但此列表仅在必要时生成,而不是在所有页面上生成。我的全局js文件应该具有以下内容:

    $("#list").click( function(){ 
       $(this).removeClass('collapse').addClass('expand'); 
    });
    

    就在正在生成的div上面 在创建div后的页面底部是通过PHP输出的吗?

    3 回复  |  直到 16 年前
        1
  •  2
  •   James    16 年前

    两件事:

    加载一个大的js文件比加载许多小的js文件要快,因为它避免了许多连接的开销

    您还可以说将它添加到标签上方的HTML中。当web浏览器遇到JS时,它会停止呈现,直到JS被加载并执行。因此,您希望将JS放在页面的底部,以便您的页面尽快向用户显示。

    我不是说一个大文件是一个好主意,这取决于很多事情。这些只是要记住的事情。

        2
  •  0
  •   DrColossos    16 年前

    不需要有单独的文件(如果你想,请随意分开它当然)。如果你有 #list 元素时,只有在存在 在页面上的某个地方上课。它将是太多的工作(至少对我来说),以移动在不同的文件中的一切。

    我看过这个片段来检查元素是否真的在页面上

    if($("body").hasClass("#link")) {
         //do something
    }
    
        3
  •  0
  •   Matt Evanoff    16 年前

    使用这个,我创建了一个PHP方法来加载javascript文件,这样您就可以

    $this->loadJavascript('jquery1.4.js')->loadJavascript('util.js');  
    

    当运行时,它将转换为如下所示的脚本标记:

    <script type="text/javascript" src="js.php?file1=jquery1.4.js&file2=util.js"></script>
    

    js.php是一个php脚本,它获取请求的js文件并将它们合并到一个文件中,缩小它,将它保存到一个名为jquery1.4.js-util.js的js/cache目录中,然后输出内容(如果它首先存在的话,显然会使用缓存版本)

    然后您可以添加一个简单的参数,比如?debugJS=true,它将绕过所有这些,而是将所有实际使用的JS文件放在页面上,这样您就可以更轻松地进行调试。

    关键是这会给你一个“两全其美”的解决方案。