私は、ロード時に0からN個のdiv要素を含むPHPスクリプトによって作成されたWebページを持っています。各divについて、そのdivに関連するデータを操作する特定のjavascriptコードを実行します。 このコードが行うことの1つは、img要素を作成し、既知の(ただし可変サイズの)イメージの特定のURLに 'src'属性を設定することです。これはキャッシュのために行われます。これらの画像は最初のページレイアウトでは表示されませんが、特定のユーザー入力(マウスのホバー)の後に表示されるはずです - 画像が表示されるまで時間がかからないように画像をキャッシュしようとしています。複数の内部javascriptコードを非同期で実行し、ブロックしない方法は?
コースの画像の読み込みには時間がかかります。画像にコードブロックが読み込まれるたびに、読み込み時間が長くなります。例:
<div id="i1">
<script type="text/javascript">
/* run code relevant to 'i1', and amongst other things load some image
into a detached img element for later use. let's call this code 'bcode' */
</script>
<div id="i2">
<script type="text/javascript">
/* run 'bcode' for i2 */
</script>
<div id="...and so on">
非同期コードの実行を持つしようとする、私はこれを試してみました:
<div id="i1">
(function() {
var asyncScriptElement = document.createElement('script');
asyncScriptElement.async = true;
var scriptText = document.createTextNode ('here I put all of the relevant "bcode"');
asyncScriptElement.appendChild (scriptText);
document.getElementById ('Img_1_2').appendChild (asyncScriptElement);
}());
それはFF(まだ十分に高速ではない)の下で動作し、それは明らかにIEの下では動作しません。 これを達成する方法についてご意見はありますか? また、別の外部PHP(つまりXMLHttpRequestを使用する)から何かを得る必要はありません。私はこのPHPで必要なすべてのデータを得ました。画像の読み込みをブロック解除する方法が必要です。
私はjsファイルを参照することができるようになりますiframe内にあるjs内部からの外部ドキュメントの変数? –
追加のパラメータをiframe srcに含めることができ、iframe内でPHPまたはJS経由でこれらのパラメータを使用できます。 – lbz
@Yuval、iframeが同じドメイン(同じ起点)にある場合は、両方のウィンドウオブジェクトのすべてにフルアクセスできます。 – xj9