2009-04-29 8 views
2

私たちはサイトに広告を掲載したいが、私たちが話している広告サーバーは、広告をすばやく配信することに問題がある。JavaScriptスクリプトからdocument.writeをリダイレクト

この問題は、広告を表示したい場所に<script src="http://advertiserurl/myadvertkey"></script>を含めることになっているため、スクリプトをダウンロードしてdocument.writeを使用してhtmlを挿入することが問題です。

問題は、広告主のウェブサイトへの呼び出しが遅くなり、返されたコードが別のファイル(広告)をダウンロードするため、要求が満たされるのを待つ間にページの表示速度が低下することを意味します。

document.write呼び出しからの出力を取得し、ページがロードされた後にこれを書き込む方法はありますか?

は基本的に私はこれをしたい:私は、そのファイルの出力を取得し、それを表示できるようになるものと類似

<html> 
<body> 

    <script> 
function onLoad() { 
    var urlToGetContentFrom = 'http://advertiserurl/myadvertkey'; 

    // download js from above url somehow 

    var advertHtml = // do something awesome to interprete document.write output 
    $('someElement').innerHTML = advertHtml; 
} 
    </script> 

</body> 
</html> 

か何かを。

+0

私たちは、コールの内容をキャッシュし、それを提供すると考えましたが、それをキャンセルする各リクエストに対して固有のリンクとイメージが提供されます。私はこれがちょっと強迫していると思っていますが、各リクエストに.7secを追加すると、各ページの読み込みに2倍の時間がかかります。 – mjallday

答えて

3

メインページの読み込みを広告の読み込みと切り離すには、広告をiframe内の独自のページに配置するか、同様にAJAXでスクリプトファイルをダウンロードして、実行するたびに実行します。前者がURIなどを参照するために適切でない場合、後者は柔軟性を提供します。文字列置換を使用して "document.write"を別のものに書き換えたり、一時的に "document.write = custom_function; "

+0

素晴らしいアイデア。 私は基本的に次のように変更しました: document.load = function(){ var adArea = $( 'ad'); adArea.innerHtml = "