2011-01-10 16 views
6

私は自動完成のためのコードを使用したいと思います。コードはhereです。JavaScriptコードはどこに置く必要がありますか?

<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 --> 

しかし、私はこのコードを置くべき場所を把握することはできません。頭の中で?身体?

答えて

0

はい、body要素の内側に配置する必要があります。

0

もし可能なら、あなたはjQueryの、オートコンプリートのプラグイン自体、あなたが依存する他のライブラリを含めました後<body>要素の非常に終わりでそれを置きます。 <body>の最後にスクリプトを置くのは、スクリプトの実行を心配する前にブラウザがマークアップに入ることができるため、一般的に(この執筆時点では:-)ベストプラクティスとみなされます。

3

w3schools

によると、彼らは呼ば をしている、またはイベントがトリガされたときに、 は機能に置かれたときに実行されるHEADに

スクリプトをスクリプトを配置するとき。あなたの 機能をヘッドセクションに入れます。この はすべて1か所にあり、 ページ のコンテンツに干渉しません。あなたのスクリプトが は、関数の内部に配置することにしたくない、またはあなたの スクリプトがページのコンテンツを記述する必要がある場合は、それ あるべき場合BODY

でスクリプトを入れて

ボディセクションに配置されます。

ですので、あなたの場合。あなたは、外部ファイルにそれを入れてbody

+4

ちょうどヒント:ここを参照するためにw3schoolsを使用すると、多くの鳴り声と嘲りが発生します。それは正式な情報源ではありません。さまざまな品質の情報を持つランダムなウェブサイトです。特に、このアドバイスは単なる奇妙であり、実際には包括的ではなく、正確でもありません。 – Pointy

+0

だから正しい情報を探してみることをお勧めしますか? http://www.w3.org/TR/html4/interact/scripts.htmlでは、私が見る限り、ベストプラクティスを指定していません。 –

+0

これはおそらく実際の仕様で現れるようなものではありません。 Stackoverflowのようなサイトでは、良いブログを把握し、良い答えを読んでいくことが重要です.JavaScriptのパフォーマンス(およびクライアントサイドの最適化)は最近非常にホットな話題であり、「ベストプラクティス」の意見はすぐに進化しています。 – Pointy

2

でスクリプトを配置し、HTMLドキュメントのファイルが使用していることをリンクすることができます:

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

(あなたはHTML5を使用している場合は、 type属性をスキップすることができます)。

上記の方法は最も明確で一般的な方法ですが、いくつかの研究ではそれが最速ではないことが証明されています。そのJavaScriptを</body>要素の直前に置いて、jQuery.read()(この場合は$(function() { ... });)のように省略することができます。その場合、数ミリ秒(またはそれ以下)になるでしょうが、私はそれに気づくことを強いられています。

+2

ジョン・レジグはそんな風にはしません。私は彼がこれらの投稿のいくつかを読んでいるので慎重に考えます。 – qwertymk

4

bodyタグの末尾にコードを置いてください。

あなたは、複数のスクリプトが含まれており、彼らはあなたがあなたのスクリプトが実行順序を見ることができる場所、WebSiteOptimization.com's Article on the Defer Attributeをチェックアウトし、あなたのための正しい順序でロードすることを自分自身を説得する必要がある場合Steve Souder's High Performance Web Sites - Evolution of Script Loading

をチェックしてください。

+1

合意しました。 HTMLの後にJavaScript関数を宣言して、ページがより高速に読み込まれるようにすることをお勧めします。言い換えれば、最初にビューをロードして(ユーザーがページを見ることができるように)、関数宣言を最後にロードすることをお勧めします。 –

+1

うまく構成されたhtmlページは、上のCSS、途中のHTMLコンテンツ、末尾のJavaScriptのように順序付けられます –

関連する問題