初学はJqueryとMootoolsを浅く分析します


詳細
まず、私はJavascriptに対する認識が浅く、この方面は入門初心者なので、私の認識は必ずしも正しいとは限らないが、これもいくつかの初心者の普遍的な思想を代表しているはずだ.
 
正直に言うと、以前はJavascriptがこれが初級で、設計がなく、コードが規範的ではなく、デバッグが難しいと思っていたのは、小さな技だった.しかし、最近偶然にCouchdbを見始めました.これはJavascriptと深く関連しています.そこで、Javascriptを見てみると、以前の認識は本当に一面的で浅薄で、Javascriptもよく設計されています.そして、その強力な機能と応用分野も、自分では考えられませんでした.
 
Javascriptを見る第一歩は、フォーラムのWebフロントエンド技術版で、一日ダイビングして、豚がどのように走っているのか、次は豚肉を探して食べることができます.
私は怠け者なので、フレームを直接使いましょう.しかし、フレームを使うと、とてもうるさいことがあります.フレームが一つだけではありません.どうやって選びますか.スキューバダイビングによると、JqueryとMootoolsの方が自分に合っていると思います.
 
次に、この2つの枠組みに対する自分の見方を話しましょう.
no code say hammer:
$(document).ready(function() {
	// generate markup
	var ratingMarkup = ["Please rate: "];
	for(var i=1; i <= 5; i++) {
		ratingMarkup[ratingMarkup.length] = "" + i + " ";
	}
	// add markup to container and applier click handlers to anchors
	$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
		e.preventDefault();
		// send requests
		$.post("rate.php", {rating: $(this).html()}, function(xml) {
			// format result
			var result = [
				"Thanks for rating, current average: ",
				$("average", xml).text(),
				", number of votes: ",
				$("count", xml).text()
			];
			// output result
			$("#rating").html(result.join(''));
		} );
	});
});

 
このJqueryコードは、本当に手間が省けて、自分でJavascriptを持って書けば、面倒になると思います.
 
mootoolsコードを見てみましょう.
			var gallery = $('gallery');
			
			var addImages = function(images) {
				images.each(function(image) {
					var el = new Element('div', {'class': 'preview'});
					var name = new Element('h3', {'html': image.name}).inject(el);
					var desc = new Element('span', {'html': image.description}).inject(name, 'after');
					var img = new Element('img', {'src': images_path + image.src}).inject(desc, 'after');
					var footer = new Element('span').inject(img, 'after');
					
					if (image.views > 50 && image.views < 250) footer.set({'html': 'popular', 'class': 'popular'});
					else if (image.views > 250) footer.set({'html': 'SUPERpopular', 'class': 'SUPERpopular'});
					else footer.set({'html': 'normal', 'class': 'normal'});
					
					el.inject(gallery);
				});
			};

			$('loadJson').addEvent('click', function(e) {
				e.stop();
				var request = new Request.JSON({
					url: demo_path + 'data.json',
					onComplete: function(jsonObj) {
						addImages(jsonObj.previews);
					}
				}).send();
			});

この2つのコードは、Jqueryの強力なセレクタや、膨大なプラグインの数など、実際には全面的ではありません.
 
この2つのフレームワークのコードスタイルが最大の違いだと思います.
たとえば、
$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e)

多くのことは1行のコードでできて、とても簡単です.
 
Mootoolsはもう一つの方法を使って、すべてオブジェクトに基づいて、例えば1つのDOM要素はセレクタが返す1つのオブジェクトで、リンクをクリックする応答に対して、直接ではありません.clickではなく、要素オブジェクトを呼び出すaddEvent()メソッドです.
最後に、DOMを生成し、new Element()を使用して要素オブジェクトを作成し、オブジェクトのinject()メソッドを使用して要素を組み合わせます.Ajaxリクエストの送信も、比較的きれいな書き方です.
 
古いJavaとして、新しいRubyプログラマーとして、私のはMootoolsのコードを見るのがもっと快適で、私の思考習慣に合っているに違いありません.そして、私はオブジェクト向けの設計能力をゆっくり利用して、コードを再構築して多重化することができて、Jqueryよりも簡単だと思います.
 
これは私に何年も前を思い出させて、ORMの処理に対して、以前はみんなjspあるいはservletの中でsqlの検索を書いて、それからresultsetを処理して、その時大量のsqlの達人がいて、今まですべてDBAになることができますほほほ.ORMが出てくると、みんなも理解していません.これは対象にしなければなりません.違和感があって、以前は簡単にできたことですが、今は面倒で、少しも不快です.もちろんORMは徐々に優位に立ったが、sqlを直接書くのも可能だった.
 
まとめ:
個人:純粋なフロントエンド開発者で、以前はオブジェクト向け言語(Java、Rubyなど)やデザインの基礎がなかった場合は、Jqueryを使用してください.そうでない場合はMootoolsを使用してください
企业:もしすぐに利益を见ることができることを望むならば、コストを気にかけて、技术の上で大きい投入するつもりはありませんて、Jqueryを使って下さい、もし一定の素质の対象の设计の人材があるならば、企业が长期にわたり1つの技术の优位があることを望むならば、Mootoolsを使って下さい