gpt4 book ai didi

重写document.write实现无阻塞加载js广告(补充)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章重写document.write实现无阻塞加载js广告(补充)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

无阻塞加载javascript,对于页面性能优化有很大的作用,这样能有效的减少js对页面加载的阻塞。特别是一些广告js文件,由于广告内容有可能是富媒体,更是很可能成为你页面加载提速的瓶颈,高性能javascript告诉我们,同学,提升你的网页速度,就无阻塞地加载JS吧.

于是便有一下代码出现.

?
1
2
3
4
5
6
7
8
( function () {
var s = document.createElement( 'script' );
s.type = 'text/javascript' ;
s.async = true ;
s.src = 'http://yourdomain.com/script.js' ;
var x = document.getElementsByTagName( 'script' )[0];
x.parentNode.insertBefore(s, x);
})();

上边都是大家熟悉的,看过书的同学都知道这样无阻塞加载的好处,效果挺不错的,当此等无阻塞脚本遇到一般js广告就来了写问题——广告代码出现在HTML里面了却不显示广告.

纳尼?HTML出来了不渲染到页面上?

先看看广告js代码 。

  。

复制代码 代码如下:

document.write('<img src="http://img.jb51.net/logo_small.gif" js" id="highlighter_386534">
?
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
29
30
31
32
33
34
35
36
37
38
39
function LoadADScript(url, container, callback){
     this .dw = document.write;
     this .url = url;
     this .containerObj = ( typeof container == 'string' ?document.getElementById(container):container);
     this .callback = callback || function (){};
   }
  
   LoadADScript.prototype = {
     startLoad: function (){
       var script = document.createElement( 'script' ),
         _this = this ;
      
       if (script.readyState){ //IE
         script.onreadystatechange = function (){
         if (script.readyState == "loaded" || script.readyState == "complete" ){
           script.onreadystatechange = null ;
           _this.finished();
         }
       };
       } else { //Other
         script.onload = function (){
           _this.finished();
         };
       }
      
       document.write = function (ad){
         var html = _this.containerObj.innerHTML;
         _this.containerObj.innerHTML = html + ad;
       }
      
       script.src = _this.url;
       script.type = 'text/javascript' ;
       document.getElementsByTagName( 'head' )[0].appendChild(script);
     },
     finished: function (){
       document.write = this .dw;
       this .callback.apply();
     }
   };

最后此篇关于重写document.write实现无阻塞加载js广告(补充)的文章就讲到这里了,如果你想了解更多关于重写document.write实现无阻塞加载js广告(补充)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com