`
topgun
  • 浏览: 23990 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

初学浅析Jquery 和Mootools

阅读更多

首先申明,我对Javascript 认识很浅,这方面算个入门新手,所以我的认识不一定正确,但是这也应该代表了一些新手普遍思想,如果有精通的朋友提出看法,那相当感谢。

 

说实话,以前是瞧不起Javascript 认为这个东西比较初级,而且无设计可言、代码无规范、调试困难,是个小技。但最近机缘巧合,开始看Couchdb ,这个东西和Javascript 关联挺深,于是也看了看Javascript 发现以前的认识实在很片面、浅薄,原来Javascript也可以有很好的设计,而且其强大的功能和应用领域,也是自己没有想到的。

 

看Javascript 的第一步,是在论坛里Web 前端技术版里,潜水了一天,大概知道了猪是怎么跑的,接下来可以找猪肉吃了。

因为我比较懒,于是直接使用框架吧,但是使用框架,有一个非常烦人的事情,就是框架不止一个,你怎么选?根据潜水的了解,认为Jquery 和Mootools 比较适合自己的情况。

 

接下来谈谈自己对这两个框架的看法吧:

no code say hammer:

$(document).ready(function() {
	// generate markup
	var ratingMarkup = ["Please rate: "];
	for(var i=1; i <= 5; i++) {
		ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> ";
	}
	// 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();
			});

 这两段代码其实并不全面,比如Jquery 的强大的选择器,以及庞大的插件数量。

 

我觉得,这两个框架的代码风格是最大的区别,

比如这句:

$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e)

 很多事一行代码就搞定了,非常简单。

 

而Mootools 就用了另一种做法,是全部基于对象的,比如一个DOM元素是选择器返回的一个对象,对点击链接的响应,不是直接.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 ,如果有一定素质的面向对象设计人才,希望企业能够在长期有一个技术优势,请使用Mootools

分享到:
评论

相关推荐

    jQuery、Mootools、Prototype三大JavaScript框架中文手册

    然而,原生JavaScript的API庞大且不统一,为了简化开发,社区创造了一系列的框架,其中jQuery、MooTools和Prototype是三个非常著名的JavaScript库。这些框架提供了一致的接口,增强了DOM操作,简化了事件处理,并...

    四种时兴的框架jQuery,Mootools,Dojo,ExtJS的对比

    四种时兴的框架jQuery,Mootools,Dojo,ExtJS的对比

    jquery_mootools_date_plugn

    在Web开发中,处理日期和时间是常见的需求,jQuery和MooTools作为JavaScript库,都提供了丰富的功能和插件来简化这一过程。本篇文章将深入探讨名为"jquery_mootools_date_plugn"的项目,它是如何将jQuery的灵活性与...

    Prototype、JQuery和Mootools的概要图

    Prototype、jQuery和MooTools是三个非常流行的JavaScript库,它们都旨在简化JavaScript编程,提高开发效率。下面将对这三个库进行详细介绍。 Prototype是最早的JavaScript库之一,由Sam Stephenson于2005年创建。它...

    四种流行的AJAX框架jQuery_Mootools_Dojo_ExtJS的对比

    ### 四种流行的AJAX框架对比分析:jQuery, Mootools, Dojo, ExtJS #### 一、jQuery **主页**: &lt;http://jquery.com/&gt; **设计思想**: - **简洁性**: 几乎所有操作都始于选择DOM元素,并对其进行操作(支持Chaining...

    浅析JQuery框架及其插件应用

    ### 浅析JQuery框架及其插件应用 #### 一、jQuery框架概述 JQuery,一个由美国程序员John Resig创建的JavaScript库,自诞生以来迅速成为全球开发者钟爱的工具之一。它以“写得少,做得多”(WRITELESS,DOMORE)的...

    jquery,mootools,ext3,prototype对class选择符速度比较

    标题中的"jquery,mootools,ext3,prototype对class选择符速度比较"指的是对四个流行的JavaScript库——jQuery、MooTools、EXT3和Prototype——在处理CSS类选择器时的性能进行的比较测试。这些库在Web开发中广泛用于...

    Mootools和JQuery的比较

    【Mootools和JQuery的比较】 Mootools和JQuery是两个著名的JavaScript库,它们在Web开发中被广泛用于简化DOM操作、事件处理、动画效果和Ajax交互。虽然两者都旨在提高前端开发效率,但它们的设计理念和实现方式存在...

    表单验证及jquery mootools解决方案

    `jQuery`和`MooTools`都是流行的JavaScript库,它们提供了丰富的功能,包括方便的表单验证。本文将深入探讨表单验证的概念,以及如何使用`jQuery`和`MooTools`来实现这一功能。 首先,让我们理解表单验证的基本概念...

    300+Jquery, CSS, MooTools 和 JS的导航菜单

    标题 "300+Jquery, CSS, MooTools 和 JS的导航菜单" 涵盖了四个关键领域:jQuery、CSS、MooTools以及JavaScript,这些都是网页开发中的核心技术。这些技术用于创建动态、交互式的网站导航菜单,为用户提供更丰富的...

    (jQuery,mootools,dojo)使用适合自己的编程别名命名

    以下是关于如何在jQuery、mootools和Dojo中使用编程别名的一些知识点: 1. jQuery中的别名使用: jQuery是一个非常流行的JavaScript库,它提供了一套简洁的方法来进行DOM操作和AJAX调用等。在使用jQuery时,一个...

    漂亮的斑马纹table表格(基于JQuery斑马纹表格)

    一个简单的斑马纹表格,通过IE6/7/8、firefox、opera等浏览器测试。如果页面上有大量的表格数据时,隔行变色的...提示, jquery 与mootools存在一定的冲突,jquery与mootools混合的环境未测试过,不一定保证可正常使用

    最新Mootools.chm教程及jquery-1.2.6教程

    **Mootools与jQuery是两种流行的JavaScript库,它们极大地简化了网页动态效果的实现和DOM操作,提高了开发效率。** **Mootools** Mootools是一个面向对象的JavaScript框架,以其模块化、高性能和对浏览器的广泛兼容...

    jquery+mootool

    在Web开发领域,JavaScript库如jQuery和MooTools是开发者的重要工具。这两个库都提供了丰富的API,简化了DOM操作,事件处理,动画效果,以及AJAX交互。下面将详细探讨jQuery和Mootools的相关知识点。 **一、jQuery*...

    MooTools1.4中文PDF手册+MooTools-Core-1.5.1.js

    MooTools是一款强大的JavaScript库,它提供了一套优雅的面向对象的编程接口和实用的工具集,便于开发者创建高效、可维护的Web应用程序。MooTools 1.4中文PDF手册与MooTools-Core-1.5.1.js是学习和使用MooTools的核心...

    JavaScript libraries--->jQuery, Prototype, Mootools, YUI, Extjs, Dojo

    在给定的标题"JavaScript libraries---&gt;jQuery, Prototype, Mootools, YUI, Extjs, Dojo"中,提到了五种著名的JavaScript库:jQuery、Prototype、Mootools、YUI和ExtJS。这些库都有各自的特性和优势,下面将详细介绍...

    mootools.js插件 1.4.5 core下载.zip

    mootools.js可以生成较为复杂的、动态的网页交互效果,和jquery一样强大。。Mootools从Prototype.js中汲取了许多有益的设计理念,语法也和其极其类似。但它提供的功能要比Prototype.js多,整体设计 也比Prototype.js...

    mootools

    3. **事件处理**:MooTools的事件系统允许绑定和解绑事件,同时支持事件冒泡和事件委托,方便地处理用户交互。 4. **动画效果**:通过Fx子模块,MooTools提供了强大的动画功能,可以实现平滑的CSS属性变化、过渡和...

Global site tag (gtag.js) - Google Analytics