js遅延荷重の方法は何ですか?

7828 ワード

deferとasync属性、動的にDOM方式を作成し(一番多く使う)、必要に応じてjsを非同期でロードします.注:(setTimeOut(js,time)
JSのロードが遅れています.つまり、ページの読み込みが完了したら、JavaScriptファイルをロードします. JSの遅延荷重はページの読み込み速度を上げるのに役立ちます.
 1.defer属性
HTML 4.01は  タグが されています.  defer です.  :スクリプトは にページの に しないことを します.つまり、スクリプトは ページを した に されます.で  の   defer  は、ブラウザにすぐにダウンロードするということですが、 が れています.

<html>
<head>
    <script src="test1.js" defer="defer">script>
    <script src="test2.js" defer="defer">script>
head>
<body>

body>
html>  
1 2 3 4 5 6 7 8 9 10 :ですが  を に れましたが、 まれているスクリプトはブラウザがタブに してから します.HTML5 によると、スクリプトはそれらの に される. には、ディレイシナリオは ずしも に されるとは らない.defer は スクリプトファイルにのみ されます.HTML 5の をサポートします. め みスクリプトの は されます.  defer です
2.async
HTML 5は  タグが されています.  async です.deferと に、スクリプトの の を するために される. に、 スクリプトファイルにのみ されます.  :ページをスクリプトのダウンロードと を つことなく、ページの のコンテンツを に み みます.
スクリプトは ずページのロードイベントの に されます.  スクリプトが に されるとは できません.

<html>
<head>
    <script src="test1.js" async>script>
    <script src="test2.js" async>script>
head>
<body>

body>
html>  
1 2 3 4 5 6 7 8 9 10 asyncはdeferと じで、 の のダウンロードをブロックしないので、ページのロードに しません.  :ロードの をコントロールできない
3.ダイナミックにDOM を する
//         body>   (  HTML    )
<script type="text/javascript">  
   function downloadJSAtOnload() {  
       varelement = document.createElement("script");  
       element.src = "defer.js";  
       document.body.appendChild(element);  
   }  
   if (window.addEventListener)  
      window.addEventListener("load",downloadJSAtOnload, false);  
   else if (window.attachEvent)  
      window.attachEvent("onload",downloadJSAtOnload);  
   else 
      window.onload =downloadJSAtOnload;  
script>  
1 2 3 4 5 6 7 8 9 10 11 12 13 14 4.jQueryを うget Script()
$.getScript("outer.js",function(){//    ,              
      console.log("      ")  
});
1 2 3 5.setTimeout を する
6.JSに にロードさせる
js から したファイルをページの に いて、 にjsを して、ページの み み を めます.