0

パフォーマンスの観点から、サーバーから JS コードをロードする場合 (オプション #1) とクライアント側で同じコードをロードする場合 (オプション #2) の違いを理解したいと思いました。

オプション #1: サーバーは JS コードをタグで送信します。

オプション #2: サーバーはコードを JS 文字列 ( var jsCode = '[code]') として送信します。ブラウザーでは、読み込みが開始された後、スクリプト ノードが作成され、.text プロパティが設定されます ( scriptNode.text = jsCode) 。

scriptNode = document.createElement('script');
document.body.appendChild(scriptNode);
scriptNode.setAttribute('type', 'text/javascript');
scriptNode.text = jsCode;

パフォーマンスの観点から、あるオプションは他のオプションよりも優れていますか? たとえば、オプション #2 では、スクリプト ノードを作成して DOM ツリーに追加するという追加の作業を行う必要があります。これらとは別に、パフォーマンスに違いはありますか (時間とメモリに関して)?

4

1 に答える 1

0

私が知らない魔法がない限り、オプション 2 が高速になる方法はないと思います。ネットワーク経由で同じ量のデータを送信し、スクリプト ブロックを解析し、 DOM を変更する必要があるため、余分な手順を追加しています (もちろんメモリを使用します)。

ただし、インライン スクリプト ブロックのように解析中にページ レンダリングがブロックされないため、オプション 2でスクリプトを非同期的に読み込むと、パフォーマンスが向上する可能性があります。

于 2012-08-29T12:09:12.270 に答える