我应该在哪里放置我的自定义javascript对象?

时间:2013-01-29 15:02:28

标签: javascript jquery html

假设我有以下脚本

<script type="text/javascript">
  $(function($, d) { 
    var custom = {
      settings: { news: $('div.news') },
      init: function() { this.settings.news.html('new'); }
    }
  }(jQuery, $(document)))
</script>

您可以假设该对象具有更多功能,但我的问题是我应该在哪里放置它? 我知道两种方法:

  1. 将脚本放在<head>标记中。这样我就必须确保只在document.ready之后调用该对象,因此设置jQuery对象($('div.news'))不会为空。

  2. 在我看来,第二种方式在语义上不太正确,但我可以放弃document.ready功能:我可以在html之后“物理地”放置脚本。

  3. 您更喜欢什么样的解决方案?为什么?谢谢你提前!

2 个答案:

答案 0 :(得分:3)

任何无助于呈现页面布局的脚本都应放在正文的底部,最好是作为对脚本文件(不是脚本本身)的引用。这允许CSS + HTML以可视方式呈现页面,然后将JavaScript(或jQuery,在您的情况下)应用于呈现的元素。

它不会提高页面perse的性能,但它确实加快了视觉呈现速度,似乎为最终用户提供了更快的体验。

See here for more details.

答案 1 :(得分:0)

我在关闭body标签之前放置我的代码,然后运行init():

var custom: {
    settings: { news: null },
    init: function() {
        this.settings.news = $('#news');
        this.settings.news.html('new'); 
    }
}

custom.init();

类似的东西。

已编辑以反映安东尼的评论。