今コミュニティウィキ!
最初に明確にしておきたいのは、これはサーバー側のJavascriptやJavascriptサーバー側の実行に関する質問ではありません。これは、サーバー側のコードからのJavascriptコード(クライアント側で実行される)のレンダリングに関する質問です。
そうは言っても、たとえば以下のASP.netコードを見てください。
hlRemoveCategory.Attributes.Add("onclick", "return confirm('Are you sure you want to delete this?');")
onclick
これは、サーバー側でクライアント側のイベントを規定しています。
クライアント側でJavascriptを書くのとは反対に:
$('a[rel=remove]').bind('click', function(event) {
return confirm('Are you sure you want to delete this?');
}
今私が聞きたい質問は次のとおりです:サーバー側のコードからjavascriptをレンダリングすることの利点は何ですか?またはその逆?
私は個人的に、次の理由から、クライアント側のUI/動作をHTML要素に接続する2番目の方法を好みます。
- サーバー側は、データ検証、イベント委任など、すでに必要なことをすべて実行します。と
- サーバー側がイベントと見なすのは、必ずしもクライアント側のプロセスと同じではありません。つまり、クライアント側にはさらに多くのイベントがあります(カスタムイベントを見てください)。と
- イベント中にクライアント側とサーバー側で発生することは、完全に無関係であり、切り離されている可能性があります。と
- クライアント側で何が起こってもクライアント側で起こるので、サーバーが知る必要はありません。サーバーは、与えられたものを処理して実行する必要があります。プロセスがどのように実現するかは、クライアント側のイベントが発生した場合に決定するのは実際には彼ら次第ではありません。などなど。
これらは明らかに私の考えです。他の人がどう思うか、そしてこのトピックについて何か議論があったかどうか知りたいです。
この議論から分岐するトピックは、次のように到達できます。
- コード管理:サーバー側からすべてをレンダリングする方が簡単ですか?
- 関心の分離:クライアント側のロジックをサーバー側のロジックに分離すると簡単になりますか?
- 効率:コーディングと実行の両方の点でどちらがより効率的ですか?
一日の終わりに、私は自分のチームを2番目のアプローチに向けて動かそうとしています。このチームには、この変更を恐れている老人がたくさんいます。私は彼らに正しい事実と統計を納得させたいだけです。
あなたの考えを聞かせてください。
UPDATE1:この投稿に参加した私たち全員が共通の考えを持っているようです。同じように考える人がいることを知っておくとよいでしょう。さあ、みんなを説得しましょう;)みんなありがとう。