2017-03-06 1 views
1

私はJavaScriptを学んでおり、真実を伝えるために、私には分かりません。このように。javascript、HTML、頭と体のJavaScriptを書くことの違い

<body> 
<script type="text/javascript"> 
function people(name, age){ 
this.name = name; 
this.age = age; 
this.ret = yearsLeft; 
} 

function yearsLeft(){ 
var numYears = 65 - this.age; 
return numYears; 
}   

var sam = new people("sam forest", 39); 
var billy = new people("billy wood", 45); 

document.write(billy.ret()); 
</script> 
</body> 

と私は結果を得た:私は、最初のコードブロックを書きました。しかし、私は最初の1の後にこれを書いて、私は同じ結果だ:ここで

<head> 
<title>Javascript</title> 

<script type="text/javascript"> 
function people(name, age){ 
this.name = name; 
this.age = age; 
this.ret = yearsLeft; 
} 

function yearsLeft(){ 
var numYears = 65 - this.age; 
return numYears; 
}   

var sam = new people("sam forest", 39); 
var billy = new people("billy wood", 45); 
</script> 
</head> 
<body> 
<script type="text/javascript"> 

document.write(billy.ret()); 
</script> 
</body> 

を私の質問、私は両方の方法で同じ結果を得るときの違いは、何ですか? YahooのBest Practices for Speeding Up Your Web Siteから

+4

[HTMLファイルにJavascriptを挿入する場所は?](http://stackoverflow.com/questions/196702/where-to-place-javascript-in-a-html-file) –

答えて

0

スクリプトによって引き起こされる問題は、それらが並列ダウンロードをブロックすることです。 HTTP/1.1仕様では、ブラウザがホスト名ごとに2つ以上のコンポーネントを並列にダウンロードするよりも、 をダウンロードしないことが示唆されています。イメージ を複数のホスト名から配信する場合、2つ以上のダウンロードが同時に発生することがあります。 ただし、スクリプトがダウンロードされている間は、ブラウザは を別のホスト名でも他のダウンロードを開始しません。

状況によっては、スクリプトを一番下に移動するのは容易ではありません。たとえば、 の場合、スクリプトはdocument.writeを使用して ページのコンテンツの一部を挿入しますが、ページの下に移動することはできません。 も対象となることがあります。多くの場合、これらの状況を回避する方法があります。

多くの場合、延期された スクリプトを使用することをお勧めします。 DEFER属性は、スクリプトに が含まれていないことを示し、ブラウザには レンダリングを続けることができることを示す手がかりになります。残念ながら、FirefoxはDEFER 属性をサポートしていません。 Internet Explorerでは、スクリプトは延期されている可能性がありますが、 は必要ではありません。スクリプトを延期することができる場合は、 をページの最後に移動することもできます。それはあなたのウェブページをより速くロードさせるでしょう。

したがって、一般に、それらを底に置くことが好ましい。しかし、必ずしもそうであるとは限りません。

0

多くの場合、結果は同じですが、ウェブブラウザがHTMLページをレンダリングする方法には相違があります。

ブラウザがページの内容を上から下に読み取るため、<head>タグ内にjavascriptコードを配置すると、ブラウザがスクリプトの解析を完了した後に実際のページコンテンツが表示されます。代わりに</body>タグの直前に置くと、ブラウザはコンテンツをより速く表示できます。これは通常望ましいことです。

上から下へのレンダリングのもう一つの意味は、SEOの最適化に関連しています。つまり、ほとんどのクローラはページの先頭で一定数のバイトを検査し、最初のバイトにはJavaScriptコードが埋め込まれているため、実際のページコンテンツにアクセスすることができます。したがって、あなたがSEOを賢明にしているすべてのメリットを減らすことができます。

+0

ありがとうございますコメント。非常に興味深く役立つ。 –

0

あなたはほとんど同じことをしているからです。ブラウザはあなたのJavaScriptコードを順番に評価するつもりです。あなたがパットしたばかりの文であれば、実行されます。

あなたが注意しなければならないことは、ブラウザがあなたのホールドキュメント(html、css、javascript)を評価することであり、関数定義ではないjavascript文がすぐに実行されることです。

+0

ご意見ありがとうございます。それは大きな助けとなりました。 –

関連する問題