script タグ内部を動的に作る
先日マピオンの中の人とお話させていただいたとき、Mayaa で script タグの中を動的に生成するにはどうすれば、と訊かれたのですが、ごく単純にやるならこう。
<script type="text/javascript" language="javascript"> ${ var sb = new java.lang.StringBuffer(); sb.append("function writeFoo() {\n"); sb.append("document.write('"); for (var i = 0; i < 10; i++) { sb.append("foo<br/>"); } sb.append("');\n"); sb.append("}\n"); sb.toString(); } </script>
でも正直いまいちですね。サーバサイドスクリプトとクライアントサイドスクリプトの区別が付きにくい。実は中の人が実践されていた「span タグに element か echo を当てて script にする」が一番良いのかもしれません。スクリプト部分を別テンプレートにして m:insert で入れるようにすればモックとの入れ替えも問題なし。
視認性を保ったままクライアントサイド JavaScript の動的生成を実現できるかどうか、ちょっと考えてみたいと思います。が、難しいだろうなあ。