0

Web ページに iFrame として複数の Etherpad インスタンスがあります。Etherpad の ep_tables プラグインは、YUI ライブラリ (約 12 の異なる JS ファイル) を使用します。これらの YUI ファイルは、etherpad インスタンスごとに読み込まれるため、サイトの読み込みに多くの時間がかかります。

状況は次のとおりです。これらの YUI ファイルを最初の etherpad インスタンスに対して 1 回だけロードし、残りのインスタンスは YUI ファイルをロードせず、すでにロードされている YUI ファイルを何らかの方法で使用したいのですが、どうすればこれを達成できますか?

PS: すべての etherpad インスタンスは iFrame であり、YUI ライブラリはその iFrame 内の html の一部です。

4

2 に答える 2

0

つまり、このスクリプトはブラウザ側をキャッシュする必要があり、問題にはなりません。お気に入りのインスペクター コンソールのネットワーク ペインを確認すると、同じ場所から同じリソースをロードしている限り. ここにいるほとんどの人は、キャッシュからロードしない方法を尋ねます。

しかし、無意味なものを発明する精神で、私は次のようにします:

function addToAllFrames(var scriptName){

    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET","scriptName",true);
    xmlhttp.send();
    xmlhttp.onreadystatechange=function(){
       if (xmlhttp.readyState==4 && xmlhttp.status==200){
           script.type = "text/javascript";
           script.src = xmlhttp.responseText;
           var frames= document.getElementsByTagName("iframe");
           for (var x = 0; x < frames.length; x++) {
               frames[x].append(script);
           }
       }
    } 
}

そして、iFrame にピン留めするスクリプトごとに呼び出します。

于 2015-04-10T19:26:33.150 に答える