[JavaScript]Google Adsenseの遅延ロード
Tags: JavaScript
さっきGoogle Adsenseのサーバーが意外と長いこと落ちてたみたいで、このサイトもGoogle Adsenseのコード読み込めずにそこでページの表示がとまってやんの。こりゃいかんと思って手元のJavaScriptの本見てたら「defer(遅延)という属性を書くと、そのスクリプト部分の読み込みがその他のページコンテンツが読み込み完了するまで後回しにされる」って書いてあったから便利と思って試しにページの頭に
<script type="text/javascript" defer=”defer”>
alert(”hello, world”);
</script>
て書いて表示させてみたら、いきなり「hello, world」って出るんですけど(Mac Firefox)!Firefoxがダメなだけ?というかGoogle Adsenseはコード改変するのダメっぽいのでこの方法は結局使えない。調べてみると遅延描画ライブラリなんてものがあるらしい。これでGoogle Adsenseの表示問題は一応解決できそう。
よく考えたら自分とこのブログパーツも外部JavaScriptファイルとして読み込んでもらってるんだけど同じようなサーバーダウン時の対処を何も施してない。jsファイルの読み込みを遅延するいい方法はないのかな。こっちのホストサーバー落ちたら、ブログパーツ貼付けてるユーザーのサイトの表示に問題が生じるわけだから無視はできない。うちCoreserverだから超心配。例えば
<script type="text/javascript">
window.onload = function(){
処理内容
}
</script>
みたいに書いておけばページ読み込み完了まで実行が延期できるけど、もしこのスクリプトを書いてあるjsファイルそのものがサーバーダウンで読み込めなかった場合の対処にはならんよね。ファイルそのものが読み込めてないんだから。うーむ。
追記(2008/03/06):IEではdefer属性で遅延実行可能らしい。Mac Firefoxじゃ遅延せんかった。
* IEでは確かにHTMLのHello World!!が出た後に数秒後(ここでは2秒)にalert(”Hello World!!”);
* fxなどでは2秒間待たされた後にalert(”Hello World!!”);してその直後にHello World!!が描画されている。
追記(2008/03/07): defer=”defer”付けたらブログパーツがIE7で表示されなくなった。何で!
Related posts:
Title Link
Trackback URL
Comments
Leave a Reply