我应该在哪里放置我的JavaScript代码?

时间:2011-01-10 14:28:07

标签: javascript jquery autocomplete

我想将代码用于自动完成。代码为here

<script>
    $(function() {
        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "COBOL",
            "ColdFusion",
            "Erlang",
            "Fortran",
            "Groovy",
            "Haskell",
            "Java",
            "JavaScript",
            "Lisp",
            "Perl",
            "PHP",
            "Python",
            "Ruby",
            "Scala",
            "Scheme"
        ];
        $( "#tags" ).autocomplete({
            source: availableTags
        });
    });
    </script>



<div class="demo">

<div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags">
</div>

</div><!-- End demo -->



<div class="demo-description" style="display: none; ">
<p>The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are tags for programming languages, give "ja" (for Java or JavaScript) a try.</p>
<p>The datasource is a simple JavaScript array, provided to the widget using the source-option.</p>
</div><!-- End demo-description -->

但是,我无法弄清楚我应该把这段代码放在哪里。在头?身体?

5 个答案:

答案 0 :(得分:4)

您可能应该将代码放在正文标记的末尾。

查看Steve Souder's High Performance Web Sites - Evolution of Script Loading

如果您有多个脚本包含且需要说服自己他们将按正确的顺序加载,请查看WebSiteOptimization.com's Article on the Defer Attribute,您可以在其中查看脚本执行的顺序。

答案 1 :(得分:3)

根据w3schools

何时将脚本放入HEAD

  

脚本要执行的时候   调用,或触发事件时,   被放置在功能中。把你的   头部的功能,这个   它们都在一个地方,并且   他们不会干扰页面   内容。

何时将脚本放入BODY

  

如果你不想要你的脚本   放在一个功能内,或者如果你的   脚本应该写页面内容,它   应该放在身体部分。

所以在你的情况下。您可以将脚本放在body

答案 2 :(得分:2)

将其放入外部文件,然后使用以下命令将该文件与HTML文档链接:

<head>
    ...
    <script type="text/javascript" src="/scripts/my-script.js"></script>
</head>

(如果您使用的是HTML5,则可以跳过type属性)。

以上方式是最明确和最常见的方式,但有些研究证明它不是最快的方法。您可以将JavaScript放在</body>元素之前,跳过jQuery.read()(在这种情况下为$(function() { ... });,这是一种简短形式)。在这种情况下,你会获得几毫秒(甚至更少),但我只是被迫注意到这一点。

答案 3 :(得分:0)

是的,你应该将它放在body元素中。

答案 4 :(得分:0)

如果可以的话,将它放在<body>元素的 end 之后,你已经包含了jQuery,自动完成插件本身,以及任何你依赖的其他图书馆。将脚本放在<body>的末尾通常(在撰写本文时:-)被认为是最佳实践,因为它允许浏览器在不必担心脚本执行之前进入标记。