本文(</body>
)の終了タグの後にスクリプトタグを配置するのはどのくらい間違っていますか。?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
本文(</body>
)の終了タグの後にスクリプトタグを配置するのはどのくらい間違っていますか。?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
回答:
またはタグの外側では検証されません。また、body要素が完全に読み込まれる前にIEを破壊する可能性のあるDOM操作を行わない限り、それがcloseの直前に置かれることにも大きな違いはありません。<body>
<head>
</body>
<html>
....
<body>
....
<script type="text/javascript" src="theJs.js"></script>
</body>
</html>
<script src="..." defer>
、すべての主要なブラウザで動作します(ただし、IE9以下のバグが壊れる可能性があります)。
はい。本文の終了タグの後には、コメントとhtml要素の終了タグのみを使用できます。
ブラウザーはエラー回復を実行する可能性がありますが、それに依存するべきではありません。
以下のようアンディは言った文書が有効ではないだろうが、それにもかかわらず、スクリプトがまだ解釈されます。たとえば、WebKit のスニペットをご覧ください。
void HTMLParser::processCloseTag(Token* t)
{
// Support for really broken html.
// we never close the body tag, since some stupid web pages close it before
// the actual end of the doc.
// let's rely on the end() call to close things.
if (t->tagName == htmlTag || t->tagName == bodyTag
|| t->tagName == commentAtom)
return;
...
IEはこれを許可しなくなり(バージョン10以降)、そのようなスクリプトは無視されます。FFとChromeはまだそれらを許容しますが、いつか非標準としてこれを落とす可能性があります。
W3Cの推奨プロセスにより、「要素本体」の後に「要素スクリプト」を「解析エラー」として手続き的に挿入します。「Tree Construction」でエラーを作成し、「tokenize again」を実行してそのコンテンツを処理します。つまり、追加のステップのようなものです。その後でのみ、「スクリプト実行」を実行できます- スキームプロセスを参照してください。
それ以外の場合は「解析エラー」。「挿入モード」を「本文」に切り替え、トークンを再処理します。
技術的にはブラウザによって、それは内部プロセスであり、どのようにマークし、最適化するかです。
私は誰かを助けたいと思います。
「CSSの最適化」に関して、Googleは実際にこれを推奨しています。彼らは重要なスクロールせずに見えるスタイルをインライン化し、残り(CSSファイル)を延期することを推奨しています。
例:
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<noscript><link rel="stylesheet" href="small.css"></noscript>
参照:https : //developers.google.com/speed/docs/insights/OptimizeCSSDelivery
body
要素の外にものを置くことは想定されていません。そのグーグルの記事はそのようなことをするように誰にも助言しません。
最近のブラウザーは、次のように本文のスクリプトタグを受け取ります。
<body>
<script src="scripts/main.js"></script>
</body>
基本的には、ページが終了するとスクリプトが読み込まれることを意味します。これは、特定のケース(つまりDOM操作)で役立つ場合があります。ただし、同じ効果が得られるため、同じスクリプトを使用して「defer」を付けてヘッドタグに配置することを強くお勧めします。
<head>
<script src="scripts/main.js" defer></script>
</head>
script
タグに含まれていると便利ですevent
。したがってevent="load" event="DOMContentLoaded"
、DOMが作成された後、またはevent="beforeunload"
ウィンドウbeforeunload
イベントでスクリプトを実行する必要があります。例、<script src="scripts/main.js" event="DOMContentLoaded"></script>
。