0

私のウェブサイトに約4000行のコードを生成する次のスクリプトがあります。

<script language="javascript" type="text/javascript">
<!--
var makemods2 = new Array;
<?php
$i = 0;
foreach ($makemods2 as $k=>$items) {
foreach ($items as $v) {
echo "makemods2[".$i++."] = new Array( '$k','".addslashes( $v->value )."','".addslashes( $v->text )."' );\n\t\t";
}
}
?>
//-->
</script>
<?php } ?>

これはページの読み込みが非常に重いので、もちろん解析を延期したいと思います。ただし、外部ではないため、defer=deferを使用できません。

また、このような構文を提案するGoogleのヒントも読みましたが、上記のコードの記述方法はわかりません。

<script language="javascript">
var node2 = document.createElement('script');
node2.type = 'text/javascript';
node2.async = true;
function switchDynaList2(listname,source,key,orig_key,orig_val){var list=eval("document.moduleForm."+listname);for(i in list.options.length){list.options[i]=null}i=0;for(x in source){if(source[x][0]==key){opt=new Option;opt.value=source[x][1];opt.text=source[x][2];if(orig_key==key&&orig_val==opt.value||i==0){opt.selected=true}list.options[i++]=opt}}list.length=i}
</script>

助言がありますか?

4

1 に答える 1

0

AJAXは行くべき道ですが、あなたはそれを避けたいと思うので、私は提案します:

アプローチ1

AJAX やそのようなページの読み込み状態の処理が登場する前の時代、私たちは body タグの最後に script タグを配置していました。これにより、スクリプトの実行によって遅延することなく、本文の内容を解析できます。次に、ドロップダウンをデフォルトで無効にし、スクリプトの実行が終了したら有効にするだけです。

ノート:

  • スタイルの問題が発生する場合があります。
  • 一部に対するこのアプローチは非推奨と見なされます。

アプローチ 2

PHP コードを独自のページに移動し、script タグの src 属性を使用してスクリプトを含めます。その後、script タグで defer 属性を使用できます。

于 2012-03-14T01:42:29.897 に答える