独自のファイルで JavaScript を使用するように努める必要があります。これは通常、プログレッシブ エンハンスメントで行われます。ただし、同じ JSP が異なる言語でページをレンダリングする場合など、選択の余地がない場合もあります。実際の例を次に示します。
JSP:
<script src="/javascript/article_admin.js"></script>
<script type="text/javascript">
NP_ArticleAdmin.initialize({
text: {
please_confirm_deletion_of: '<i18n:output text="please.confirm.deletion.of"/>',
this_cannot_be_undone: '<i18n:output text="this.cannot.be.undone"/>'
}
});
</script>
JavaScript (article_admin.js):
/*global NP_ArticleAdmin, jQuery, confirm */
NP_ArticleAdmin = function ($) {
var text;
function delete_article(event) {
var article = $(this).parents("li.article"),
id = article.attr("id"),
name = article.find("h3.name").html();
if (confirm(text.please_confirm_deletion_of + name + text.this_cannot_be_undone)) {
$.post("/admin/delete_article", {id: id});
article.fadeOut();
}
event.preventDefault();
return false;
}
function initialize(data) {
text = data.text;
$("#articles a.delete").click(delete_article);
}
return {initialize: initialize};
}(jQuery);
この例では、JSP ファイル内の唯一の JavaScript は、そこに存在する必要がある部分です。コア機能は、独自の js ファイルに分割されています。