JavaScript及Ajax达成长足的图片预加载,Javascript图
分类:前端技术

Javascript图片预加载详解

2016/07/04 · JavaScript · 1 评论 · 预加载

原稿出处: Perishable Press   译文出处:CSDN   

Perishable Press网站前段时间刊载了一篇作品《3 Ways to Preload Images with CSS, JavaScript, or Ajax》,分享了使用CSS、JavaScript及Ajax实现图片预加载的三大方法。下边为译文。

预加载图片是增加顾客体验的八个很好办法。图片预先加载到浏览器中,访谈者便可顺遂地在您的网址上冲浪,并分享到非常的慢的加载速度。那对图纸画廊及图片并吞非常的大比例的网址以来拾贰分利于,它保险了图片快捷、无缝地公布,也可帮助客商在浏览你网站内容时收获越来越好的顾客体验。本文将享用多个不等的预加载技巧,来提升网站的属性与可用性。

主意一:用CSS和JavaScript实现预加载

兑现预加载图片有不菲格局,包罗使用CSS、JavaScript及双方的各样组合。那个技术可依赖不一样规划场景设计出相应的减轻方案,拾分高效。

偏偏利用CSS,可轻巧、高效地预加载图片,代码如下:

CSS

#preload-01 { backgroundnull:url() no-repeat -9999px -9999px; } #preload-02 { backgroundnull:url() no-repeat -9999px -9999px; } #preload-03 { backgroundnull:url() no-repeat -9999px -9999px; }

1
2
3
#preload-01 { background: url(http://domain.tld/image-01.png) no-repeat -9999px -9999px; }  
#preload-02 { background: url(http://domain.tld/image-02.png) no-repeat -9999px -9999px; }  
#preload-03 { background: url(http://domain.tld/image-03.png) no-repeat -9999px -9999px; }

将那多少个ID接纳器应用到(X)HTML成分中,我们便可透过CSS的background属性将图纸预加载到显示屏外的背景上。只要这一个图片的路径保持不改变,当它们在Web页面包车型大巴其余地点被调用时,浏览器就能够在渲染进度中应用预加载(缓存)的图片。轻巧、高效,无需任何JavaScript。

该措施即使高效,但仍有改良余地。使用该法加载的图样会同页面包车型地铁其余内容一齐加载,增添了页面包车型大巴一体化加载时间。为了化解这些难题,大家增加了一些JavaScript代码,来贻误预加载的日子,直到页面加载落成。代码如下:

JavaScript

// better image preloading @ <a href="; function preloader() { if (document.getElementById) { document.getElementById("preload-01").style.background = "url() no-repeat -9999px -9999px"; document.getElementById("preload-02").style.background = "url() no-repeat -9999px -9999px"; document.getElementById("preload-03").style.background = "url() no-repeat -9999px -9999px"; } } function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } } addLoadEvent(preloader);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// better image preloading @ <a href="http://perishablepress.com/press/2009/12/28/3-ways-preload-images-css-javascript-ajax/">http://perishablepress.com/press/2009/12/28/3-ways-preload-images-css-javascript-ajax/</a>  
function preloader() {  
    if (document.getElementById) {  
        document.getElementById("preload-01").style.background = "url(http://domain.tld/image-01.png) no-repeat -9999px -9999px";  
        document.getElementById("preload-02").style.background = "url(http://domain.tld/image-02.png) no-repeat -9999px -9999px";  
        document.getElementById("preload-03").style.background = "url(http://domain.tld/image-03.png) no-repeat -9999px -9999px";  
    }  
}  
function addLoadEvent(func) {  
    var oldonload = window.onload;  
    if (typeof window.onload != 'function') {  
        window.onload = func;  
    } else {  
        window.onload = function() {  
            if (oldonload) {  
                oldonload();  
            }  
            func();  
        }  
    }  
}  
addLoadEvent(preloader);

在该脚本的率先片段,我们收获使用类选择器的因素,并为其安装了background属性,以预加载区别的图形。

该脚本的第二部分,大家运用addLoadEvent()函数来延缓preloader()函数的加载时间,直到页面加载实现。

若果JavaScript不可能在客商的浏览器中平常运维,会发出什么样?很简短,图片不会被预加载,当页面调用图片时,寻常显示就能够。

方式二:仅使用JavaScript达成预加载

上述情势临时真的很神速,但大家慢慢察觉它在骨子里贯彻进度中会开销太多时间。相反,我更欣赏使用纯JavaScript来完毕图片的预加载。上边将提供二种那样的预加载方法,它们能够很雅观地干活于具备当代浏览器之上。

JavaScript代码段1

只需轻巧编辑、加载所急需图片的门径与名称就能够,很轻易达成:

JavaScript

<div class="hidden"> <script type="text/javascript"> <!--//--><![CDATA[//><!-- var images = new Array() function preload() { for (i = 0; i < preload.arguments.length; i ) { images[i] = new Image() images[i].src = preload.arguments[i] } } preload( "", "", "" ) //--><!]]> </script> </div>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="hidden">  
    <script type="text/javascript">  
        <!--//--><![CDATA[//><!--  
            var images = new Array()  
            function preload() {  
                for (i = 0; i < preload.arguments.length; i ) {  
                    images[i] = new Image()  
                    images[i].src = preload.arguments[i]  
                }  
            }  
            preload(  
                "http://domain.tld/gallery/image-001.jpg",  
                "http://domain.tld/gallery/image-002.jpg",  
                "http://domain.tld/gallery/image-003.jpg"  
            )  
        //--><!]]>  
    </script>  
</div>

该办法越发适用预加载多量的图纸。笔者的画廊网址使用该才干,预加载图片数量达50多张。将该脚本利用到登入页面,只要顾客输入登陆帐号,大多数画廊图片将被预加载。

JavaScript代码段2

该办法与地点的方式类似,也得以预加载任性数量的图形。将上面包车型客车台本添出席别的Web页中,根据程序指令张开编写制定就可以。

JavaScript

<div class="hidden"> <script type="text/javascript"> <!--//--><![CDATA[//><!-- if (document.images) { img1 = new Image(); img2 = new Image(); img3 = new Image(); img1.src = ""; img2.src = ""; img3.src = ""; } //--><!]]> </script> </div>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div class="hidden">  
    <script type="text/javascript">  
        <!--//--><![CDATA[//><!--  
            if (document.images) {  
                img1 = new Image();  
                img2 = new Image();  
                img3 = new Image();  
                img1.src = "http://domain.tld/path/to/image-001.gif";  
                img2.src = "http://domain.tld/path/to/image-002.gif";  
                img3.src = "http://domain.tld/path/to/image-003.gif";  
            }  
        //--><!]]>  
    </script>  
</div>

正如所见到,每加载二个图片都急需创制四个变量,如“img1 = new Image();”,及图片源地址表明,如“img3.src = “../path/to/image-003.gif”;”。参谋该形式,你可依照须求加载任性多的图纸。

大家又对该措施进行了改良。将该脚本封装入一个函数中,并运用 addLoad伊芙nt(),延迟预加载时间,直到页面加载达成。

JavaScript

function preloader() { if (document.images) { var img1 = new Image(); var img2 = new Image(); var img3 = new Image(); img1.src = ""; img2.src = ""; img3.src = ""; } } function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } } addLoadEvent(preloader);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function preloader() {  
    if (document.images) {  
        var img1 = new Image();  
        var img2 = new Image();  
        var img3 = new Image();  
        img1.src = "http://domain.tld/path/to/image-001.gif";  
        img2.src = "http://domain.tld/path/to/image-002.gif";  
        img3.src = "http://domain.tld/path/to/image-003.gif";  
    }  
}  
function addLoadEvent(func) {  
    var oldonload = window.onload;  
    if (typeof window.onload != 'function') {  
        window.onload = func;  
    } else {  
        window.onload = function() {  
            if (oldonload) {  
                oldonload();  
            }  
            func();  
        }  
    }  
}  
addLoadEvent(preloader);

方法三:使用Ajax完毕预加载

地方所付出的章程就好像远远不足酷,这今后来看叁个利用Ajax达成图片预加载的不二诀窍。该办法运用DOM,不止预加载图片,还或许会预加载CSS、JavaScript等互为表里的东西。使用Ajax,比直接行使JavaScript,优越之处在于JavaScript和CSS的加载不会影响到当下页面。该格局简单、高效。

JavaScript

window.onload = function() { setTimeout(function() { // XHR to request a JS and a CSS var xhr = new XMLHttpRequest(); xhr.open('GET', ''); xhr.send(''); xhr = new XMLHttpRequest(); xhr.open('GET', ''); xhr.send(''); // preload image new Image().src = ""; }, 1000); };

1
2
3
4
5
6
7
8
9
10
11
12
13
window.onload = function() {  
    setTimeout(function() {  
        // XHR to request a JS and a CSS  
        var xhr = new XMLHttpRequest();  
        xhr.open('GET', 'http://domain.tld/preload.js');  
        xhr.send('');  
        xhr = new XMLHttpRequest();  
        xhr.open('GET', 'http://domain.tld/preload.css');  
        xhr.send('');  
        // preload image  
        new Image().src = "http://domain.tld/preload.png";  
    }, 1000);  
};

下面代码预加载了“preload.js”、“preload.css”和“preload.png”。一千飞秒的超时是为了防守脚本挂起,而招致健康页面出现成效难题。

下边,我们看看咋样用JavaScript来落实该加载进度:

JavaScript

window.onload = function() { setTimeout(function() { // reference to <head> var head = document.getElementsByTagName('head')[0]; // a new CSS var css = document.createElement('link'); css.type = "text/css"; css.rel = "stylesheet"; css.href = ""; // a new JS var js = document.createElement("script"); js.type = "text/javascript"; js.src = ""; // preload JS and CSS head.appendChild(css); head.appendChild(js); // preload image new Image().src = ""; }, 1000); };

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
window.onload = function() {  
  
    setTimeout(function() {  
  
        // reference to <head>  
        var head = document.getElementsByTagName('head')[0];  
  
        // a new CSS  
        var css = document.createElement('link');  
        css.type = "text/css";  
        css.rel  = "stylesheet";  
        css.href = "http://domain.tld/preload.css";  
  
        // a new JS  
        var js  = document.createElement("script");  
        js.type = "text/javascript";  
        js.src  = "http://domain.tld/preload.js";  
  
        // preload JS and CSS  
        head.appendChild(css);  
        head.appendChild(js);  
  
        // preload image  
        new Image().src = "http://domain.tld/preload.png";  
  
    }, 1000);  
  
};

这里,大家经过DOM创立多少个成分来贯彻三个文件的预加载。正如上边提到的那么,使用Ajax,加载文件不会利用到加载页面上。从这一点上看,Ajax方法优越于JavaScript。

一经您还有何样好的图形预加载方法,及对上述办法的改革建议,应接在评价中享用。(编写翻译:陈秋歌 审阅核查:夏梦竹)

初藳链接:3 Ways to Preload Images with CSS, JavaScript, or Ajax

1 赞 9 收藏 1 评论

图片 1

预加载图片是增加顾客体验的二个很好方法。图片预先加载到浏览器中,访谈者便可顺遂地在你的网址上冲浪,并分享到一点也不慢的加载速度。那对图纸画 廊及图片占领非常大比重的网址来讲特别有益,它有限支持了图片相当慢、无缝地宣布,也可扶持客户在浏览你网站内容时收获更加好的顾客体验。本文将享用多少个例外的预加 载技艺,来增加网站的性质与可用性。 

主意一:用CSS和JavaScript实现预加载

方法一:用CSS和JavaScript达成预加载

落到实处预加载图片有数不完主意,包蕴使用CSS、JavaScript及双方的各个组合。那几个能力可依据差别规划场景设计出相应的缓解方案,十一分便捷。

独自运用CSS,可轻松、高效地预加载图片,代码如下:

Html代码  

  1. #preload-01 { background: url() no-repeat -9999px -9999px; }  
  2. #preload-02 { background: url() no-repeat -9999px -9999px; }  
  3. #preload-03 { background: url() no-repeat -9999px -9999px; }   

将那多个ID选拔器应用到(X)HTML成分中,大家便可由此CSS的background属性将图纸预加载到显示屏外的背景上。只要那个图片的路线保持不变,当它们在Web页面的另外地方被调用时,浏览器就能够在渲染进度中应用预加载(缓存)的图片。轻巧、高效,不须要任何JavaScript。 

该格局尽管高效,但仍有立异余地。使用该法加载的图片会同页面包车型客车别的剧情一同加载,扩大了页面包车型地铁总体加载时间。为了减轻那几个主题素材,我们扩张了有的JavaScript代码,来拖延预加载的年月,直到页面加载达成。代码如下:

Js代码  

  1. // better image preloading  
  2. function preloader() {  
  3.     if (document.getElementById) {  
  4.         document.getElementById("preload-01").style.background = "url() no-repeat -9999px -9999px";  
  5.         document.getElementById("preload-02").style.background = "url() no-repeat -9999px -9999px";  
  6.         document.getElementById("preload-03").style.background = "url() no-repeat -9999px -9999px";  
  7.     }  
  8. }  
  9. function addLoadEvent(func) {  
  10.     var oldonload = window.onload;  
  11.     if (typeof window.onload != 'function') {  
  12.         window.onload = func;  
  13.     } else {  
  14.         window.onload = function() {  
  15.             if (oldonload) {  
  16.                 oldonload();  
  17.             }  
  18.             func();  
  19.         }  
  20.     }  
  21. }  
  22. addLoadEvent(preloader);  

在该脚本的率先某个,大家收获使用类采取器的因素,并为其设置了background属性,以预加载差别的图形。

该脚本的第二有些,大家采纳addLoadEvent()函数来推迟preloader()函数的加载时间,直到页面加载完毕。

设若JavaScript无法在客户的浏览器中不荒谬运作,会生出什么样?很简单,图片不会被预加载,当页面调用图片时,平常显示就能够。 

落到实处预加载图片有不菲办法,富含使用CSS、JavaScript及两岸的种种组合。那一个技艺可依据不一样规划场景设计出相应的技术方案,十三分快捷。
只是利用CSS,可轻巧、高效地预加载图片,代码如下:

方法二:仅使用JavaScript达成预加载

上述措施偶尔实在非常高效,但大家逐步察觉它在事实上落到实处进程中会开销太多时间。相反,作者更爱好使用纯JavaScript来兑现图片的预加载。上边将提供二种这样的预加载方法,它们得以很赏心悦目地工作于全部当代浏览器之上。 

JavaScript代码段1

只需轻易编辑、加载所急需图片的路径与名称就可以,很轻松达成:

Html代码  

  1. <div>  
  2.     <script type="text/javascript">  
  3.         <!--//--><![CDATA[//><!-- 
  4.         var images = new Array() 
  5.             function preload() { 
  6.                 for (i = 0; i < preload.arguments.length; i ) { 
  7.                     images[i] = new Image() 
  8.                     images[i].src = preload.arguments[i] 
  9.                 } 
  10.             } 
  11.             preload( 
  12.                 "", 
  13.                 "", 
  14.                 "" 
  15.             ) 
  16.         //--><!]]>  
  17.      </script>  
  18. </div>  

该办法越发适用预加载大量的图纸。笔者的画廊网址使用该技巧,预加载图片数量达50多张。将该脚本金和利息用到登入页面,只要顾客输入登陆帐号,大部分画廊图片将被预加载。 

JavaScript代码段2

该办法与地点的措施类似,也得以预加载放肆数量的图纸。将上面包车型大巴剧本添到场别的web页中,依照程序指令进行编写制定就可以。

Html代码  

  1. <div>  
  2.     <script type="text/javascript">  
  3.         <!--//--><![CDATA[//><!--  
  4.         if (document.images) { 
  5.                 img1 = new Image(); 
  6.                 img2 = new Image(); 
  7.                 img3 = new Image(); 
  8.                 img1.src = ""; 
  9.                 img2.src = ""; 
  10.                 img3.src = ""; 
  11.             } 
  12.         //--><!]]>  
  13.     </script>  
  14. </div>  

 

正如所见到,每加载二个图形都要求创制八个变量,如“img1 = new Image();”,及图片源地址评释,如“img3.src =“../path/to/image-003.gif”;”。参考该形式,你可依附需要加载率性多的图纸。

我们又对该措施实行了改进。将该脚本封装入三个函数中,并运用 addLoad伊芙nt(),延迟预加载时间,直到页面加载完结。

Js代码  

  1. function preloader() {  
  2.     if (document.images) {  
  3.         var img1 = new Image();  
  4.         var img2 = new Image();  
  5.         var img3 = new Image();  
  6.         img1.src = "";  
  7.         img2.src = "";  
  8.         img3.src = "";  
  9.     }  
  10. }  
  11. function addLoadEvent(func) {  
  12.     var oldonload = window.onload;  
  13.     if (typeof window.onload != 'function') {  
  14.         window.onload = func;  
  15.     } else {  
  16.         window.onload = function() {  
  17.             if (oldonload) {  
  18.                 oldonload();  
  19.             }  
  20.             func();  
  21.         }  
  22.     }  
  23. }  
  24. addLoadEvent(preloader);   

复制代码 代码如下:

办法三:使用Ajax达成预加载

地点所付出的艺术就像是远远不够酷,那现在来看五个应用Ajax达成图片预加载的方法。该办法运用DOM,不止预加载图片,还会预加载CSS、 JavaScript等荣辱与共的东西。使用Ajax,比直接利用JavaScript,优越之处在于JavaScript和CSS的加载会影响到当下页面,而Ajax不会,使用Ajax该办法轻便、高效。

Js代码  

  1. window.onload = function() {  
  2.     setTimeout(function() {  
  3.         // XHR to request a JS and a CSS  
  4.         var xhr = new XMLHttpRequest();  
  5.         xhr.open('GET', '');  
  6.         xhr.send('');  
  7.         xhr = new XMLHttpRequest();  
  8.         xhr.open('GET', '');  
  9.         xhr.send('');  
  10.         // preload image  
  11.         new Image().src = "";  
  12.     }, 1000);  
  13. };   

地点代码预加载了“preload.js”、“preload.css”和“preload.png”。一千纳秒的晚点是为着以免脚本挂起,而变成健康页面出现作用难题。 

上面,大家看看如何用JavaScript来兑现该加载进程:

Js代码  

  1. window.onload = function() {  
  2.     setTimeout(function() {  
  3.         // reference to <head>  
  4.         var head = document.getElementsByTagName('head')[0];  
  5.         // a new CSS  
  6.         var css = document.createElement('link');  
  7.         css.type = "text/css";  
  8.         css.rel  = "stylesheet";  
  9.         css.href = "";  
  10.         // a new JS  
  11.         var js  = document.createElement("script");  
  12.         js.type = "text/javascript";  
  13.         js.src  = "";  
  14.         // preload JS and CSS  
  15.         head.appendChild(css);  
  16.         head.appendChild(js);  
  17.         // preload image  
  18.         new Image().src = "";  
  19.     }, 1000);  
  20. };   

此间,大家透过DOM成立五个因一直促成四个文本的预加载。正如下边提到的那样,使用Ajax,加载文件不会动用到加载页面上。从这一点上看,Ajax方法优越于JavaScript。

#preload-01 { backgroundnull:url() no-repeat -9999px -9999px; }
#preload-02 { backgroundnull:url() no-repeat -9999px -9999px; }
#preload-03 { backgroundnull:url() no-repeat -9999px -9999px; }

将那四个ID选取器应用到(X)HTML成分中,大家便可经过CSS的background属性将图片预加载到显示器外的背景上。只要这个图片的门径保持不改变,当它们在Web页面包车型地铁别样地方被调用时,浏览器就能够在渲染进度中动用预加载(缓存)的图纸。简单、高效,无需任何JavaScript。
该措施纵然一点也不慢,但仍有革新余地。使用该法加载的图样会同页面包车型客车别样内容一同加载,扩展了页面包车型大巴总体加载时间。为了消除那几个标题,我们扩大了有个别JavaScript代码,来推迟预加载的日子,直到页面加载完结。代码如下:

复制代码 代码如下:

// better image preloading @ <a href=";
function preloader() {
if (document.getElementById) {
document.getElementById("preload-01").style.background = "url() no-repeat -9999px -9999px";
document.getElementById("preload-02").style.background = "url() no-repeat -9999px -9999px";
document.getElementById("preload-03").style.background = "url() no-repeat -9999px -9999px";
}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(preloader);

在该脚本的首先部分,我们收获使用类选取器的因素,并为其安装了background属性,以预加载不一样的图纸。
该脚本的第二片段,我们利用addLoadEvent()函数来推迟preloader()函数的加载时间,直到页面加载完成。
要是JavaScript不恐怕在客户的浏览器中符合规律运行,会发生什么?极粗略,图片不会被预加载,当页面调用图片时,符合规律呈现就能够。

格局二:仅使用JavaScript完结预加载

上述方式一时真的很急忙,但大家稳步察觉它在骨子里贯彻进程中会花费太多时光。相反,作者更爱好使用纯JavaScript来完成图片的预加载。下边将提供三种那样的预加载方法,它们能够极好看貌地劳作于具备当代浏览器之上。

JavaScript代码段1

只需简单编辑、加载所急需图片的路线与名称就可以,很轻巧完成:

复制代码 代码如下:

<div class="hidden">
<script type="text/javascript">
<!--//--><![CDATA[//><!--
var images = new Array()
function preload() {
for (i = 0; i < preload.arguments.length; i ) {
images[i] = new Image()
images[i].src = preload.arguments[i]
}
}
preload(
"",
"",
""
)
//--><!]]>
</script>
</div>

该格局尤其适用预加载大量的图形。作者的画廊网址采纳该手艺,预加载图片数量达50多张。将该脚本金和利息用到登陆页面,只要客户输入登陆帐号,大多数画廊图片将被预加载。

JavaScript代码段2

该措施与地点的艺术类似,也足以预加载任性数量的图形。将上边包车型地铁台本增添入别的Web页中,依据程序指令张开编辑就可以。

复制代码 代码如下:

<div class="hidden">
<script type="text/javascript">
<!--//--><![CDATA[//><!--
if (document.images) {
img1 = new Image();
img2 = new Image();
img3 = new Image();
img1.src = "";
img2.src = "";
img3.src = "";
}
//--><!]]>
</script>
</div>

正如所看到,每加载三个图纸都亟需创制二个变量,如“img1 = new Image();”,及图片源地址申明,如“img3.src = "../path/to/image-003.gif";”。参照他事他说加以考察该形式,你可依赖供给加载大肆多的图形。
咱俩又对该情势进行了校勘。将该脚本封装入三个函数中,并动用 addLoad伊夫nt(),延迟预加载时间,直到页面加载达成。

复制代码 代码如下:

function preloader() {
if (document.images) {
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
img1.src = "";
img2.src = "";
img3.src = "";
}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(preloader);

主意三:使用Ajax实现预加载

地点所提交的艺术如同非常不够酷,那今后来看叁个利用Ajax实现图片预加载的方法。该措施应用DOM,不仅预加载图片,还有只怕会预加载CSS、JavaScript等相关的东西。使用Ajax,比直接选用JavaScript,优越之处在于JavaScript和CSS的加载不会影响到近期页面。该办法简单、高效。

复制代码 代码如下:

window.onload = function() {
setTimeout(function() {
// XHR to request a JS and a CSS
var xhr = new XMLHttpRequest();
xhr.open('GET', '');
xhr.send('');
xhr = new XMLHttpRequest();
xhr.open('GET', '');
xhr.send('');
// preload image
new Image().src = "";
}, 1000);
};

上面代码预加载了“preload.js”、“preload.css”和“preload.png”。1000纳秒的过期是为了防范脚本挂起,而致使健康页面现身功用难题。
上边,大家看看哪些用JavaScript来贯彻该加载进程:

复制代码 代码如下:

window.onload = function() {
setTimeout(function() {
// reference to <head>
var head = document.getElementsByTagName('head')[0];
// a new CSS
var css = document.createElement('link');
css.type = "text/css";
css.rel = "stylesheet";
css.href = "";
// a new JS
var js = document.createElement("script");
js.type = "text/javascript";
js.src = "";
// preload JS and CSS
head.appendChild(css);
head.appendChild(js);
// preload image
new Image().src = "";
}, 1000);
};

此地,我们经过DOM创设四个因平昔促成四个文本的预加载。正如上面提到的那么,使用Ajax,加载文件不会动用到加载页面上。从那点上看,Ajax方法优越于JavaScript。

达成预加载图片有非常多主意,蕴含选拔CSS、JavaScript及二者的各样组合。这几个本事可依据不一致规划场景设...

本文由pc28.am发布于前端技术,转载请注明出处:JavaScript及Ajax达成长足的图片预加载,Javascript图

上一篇:Canvas完毕监察和控制种类页面呈现,json工控风机 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • Canvas完毕监察和控制种类页面呈现,json工控风机
    Canvas完毕监察和控制种类页面呈现,json工控风机
    传说 HTML5 Canvas 达成客车站监察和控制 2017/11/21 · HTML5 ·Canvas 初稿出处: hightopo    陪伴国内经济的长足发展,大家对安全的渴求更为高。为了防卫下列景
  • 不足挂齿的,层叠上下文
    不足挂齿的,层叠上下文
    深入领会CSS中的层叠上下文和层叠顺序 2016/01/10 · CSS ·层叠上下文 原稿出处:张鑫旭    零、凡间的道理都以想通的 在此个世界上,所有的事都有个前后
  • 那或许是史上最全的CSS自适应布局总计,html清除
    那或许是史上最全的CSS自适应布局总计,html清除
    那或许是史上最全的CSS自适应布局计算 2016/05/11 · CSS ·自适应布局 原来的文章出处: 茄果    题目严谨坚守了新广告法,你再不爽,小编也没不合规呀!
  • 网页内文字如何拉长和压扁
    网页内文字如何拉长和压扁
    一、IE和Chrome等浏览器与zoom 还在几年前, zoom 还只是IE浏览器自身个人的玩意儿,不过,以后,除了FireFox浏览器,其余,非常Chrome和平运动动端浏览器已经
  • 资源大全,开发资源
    资源大全,开发资源
    CSS 资源大全 2015/12/25 · CSS · 1评论 ·CSS 本文由 伯乐在线 -iLeo翻译,艾凌风校稿。未经许可,禁止转载! 英文出处:github.com。欢迎加入翻译组。 sotayamash