私は、カスタムビルドの古い CMS を使用して、JavaScript が非常に多い Web サイトを実行するプロジェクトに取り組んでいます。特定のテンプレート (.jsp) 全体で、Java 条件を使用してインライン JavaScript 変数と関数を設定しています。また、外部の JavaScript および CSS 要求もいたるところで行っています。ご想像のとおり、これによりパフォーマンスが非常に低下しました。
私は、ほとんどの JavaScript が外部ファイルにあり、終了 body タグの前に呼び出されるように整理しようとしています。これのトリッキーな部分の 1 つは、Java を使用して変数を作成しているときに、インライン JavaScript を外部化することです。私の知る限り、Java の一部を .js ファイルにドロップすることはできません。
私が思いついた解決策は、Java がいくつかの変数値を出力できるオブジェクトを作成し、それらを外部の JS ファイルに渡すことです。例えば:
var foo = new Object;
foo.bar = <s:property value="bar" escape="false"/>;
次に、外部ファイルで:
(function(){
console.log(foo.bar);
}());
概念的な観点から、これは有効なソリューションのように見えますか? うまくいっているように見えますが、このようにすべきではない特定の理由があるのだろうかと思っています。適切な用語を使用していない場合は、言葉遣いをお許しください。