Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该将自定义javascript对象放在哪里?_Javascript_Jquery_Html - Fatal编程技术网

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

我应该将自定义javascript对象放在哪里?,javascript,jquery,html,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> $(函数($,d){ 变

假设我有以下脚本

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

$(函数($,d){
变量自定义={
设置:{news:$('div.news')},
init:function(){this.settings.news.html('new');}
}
}(jQuery,$(文档)))
你可以假设这个对象有更多的功能,但我的问题是我应该把它放在哪里? 我知道两种方法:


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

  • 在我看来,第二种方法在语义上不太正确,但我可以放弃document.ready函数:我可以“物理地”将脚本放在html之后


  • 您喜欢什么解决方案?为什么?提前感谢

    我将这样的代码放在结束body标记之前,然后运行init():

    差不多吧


    编辑以反映Anthony的评论。

    我将这样的代码放在结束正文标记之前,然后运行init()

    差不多吧


    编辑以反映Anthony的评论。

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

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


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

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


    我更喜欢将所有JavaScript放在html之后,这有助于提高页面的性能如果我们说你有脚本,你只会得到一个语法错误。“将脚本放在
    标记中。”我想你指的是
    标记。我更喜欢将所有JavaScript放在html之后,这是如何提高页面性能的。如果我们说你有脚本,你只会得到一个语法错误。“将脚本放在
    标记中。”我想你指的是
    标记。如果你将脚本直接放在
    标记之前,那么使用DOM ready有点多余,因为此时元素确实存在。是的,我想我只是保持了这个坏习惯。我将更新代码。如果将脚本直接放在
    标记之前,则使用DOM ready有点多余,因为此时元素确实存在。没错,我想我只是保持了这个坏习惯。我会更新代码。谢谢,我可以看到这是样板方法,似乎是合理的。谢谢,我可以看到这是样板方法,似乎是合理的
    var custom: {
        settings: { news: null },
        init: function() {
            this.settings.news = $('#news');
            this.settings.news.html('new'); 
        }
    }
    
    custom.init();