`
suqing
  • 浏览: 186754 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

如何挑选jQuery插件

阅读更多

      jQuery的插件提供了一个很好的方法来节省时间和简化开发,避免程序员从头开始编写每个组件。但是,插件也将一个不稳定因素引入代码中。一个好的插件节省了无数的开发时间,一个质量不好的插件会导致修复错误的时间比实际从头 开始编写组件的时间还长。

      幸运的是,人们通常具有各种不同的插件可供选择。但是,即使你只用一个,也要弄清楚它是否值得使用的。永远不要在你的代码库中引入错误的代码。



你需要一个插件吗?                                                     

 

      首先是要弄清楚究竟你是否需要一个插件。如果不需要,既可以节省文件大小,又可以节省自己的时间。


1.自己写是不是更好?

      如果功能很简单,就自己写。jQuery的插件经常会捆绑各种功能,这可能矫枉过正。在这种情况下,手写任何简单的功能往往更有意义。当然,要对所涉及的工作量有所衡量。

     举例来说,如果你需要更先进的功能,jQuery UI的手风琴是很好的选择。但如果你只需要打开和关闭面板。如果你还没有在你的网站上使用jQuery UI上,考虑jQuery的 slideToggle()或animate()。

2.是不是你已经在使用一个类似的插件?

     在发现某个插件不能解决你需要的一切,寻找另一个插件来弥补,十分有诱惑。但在同一个应用程式包括两个类似的插件,肯定是一个臃肿的JavaScript。

     你能找到一个插件,包括你所有的需求么?如果没有,你能扩展其中一个插件达到你所需要涵盖的一切吗?同样,在决定是否扩展一个插件,权衡的是好处和开发时间。

     举例来说,jQuery的灯箱是在画廊里显示弹出的照片很好的方法, simpleModal是个很棒的方法向用户显示模式信息。但是,为什么这两种方式你的网站都使用?你可以轻松地扩展一个覆盖这两种需求。更好的是,找到一个插件,它涵盖一切,诸如Colorbox


3.需要JavaScript?
     在某些情况下,JavaScript是没有必要的。CSS的伪选择器,例如:hover和CSS3 transitios功能,可以涵盖各种动态效果,速度远远超过了JavaScript的解决方案。此外,许多插件只提供样式;感觉用markup和CSS的可能更好些。
     如果你需要展示动态内容,要求有条件的提示,jQuery Tooltip是必不可少的。但是,如果你需要提示的地方只有几个,最好是用纯CSS(见本例)。静态提示信息,你可以更进一步利用CSS3过渡进行动画效果,但不要忘记在该动画将只在某些浏览器有效。


警告事项                                                                    


      当审查任何插件,一系列的警告标志表明了这款插件的质量较差。在这里,我们将看看插件的方方面面,从JavaScript到CSS到mark-up。我们甚至会考虑如何发布插件。插件中出现任何警告都会将你的插件排除在考虑之外。You get what you pay for, and because you’re probably paying nothing, you should be willing to cut any one a bit of slack.
      如果你很幸运,有多个插件供选择,这些警告条例可以帮助你缩小选择。但是,即使只有一个选择,如果你看到太多的警示还是放弃的好。可以提前减少自己的头痛。


4.奇怪的选项或参数语法
     在使用jQuery的时候,开发工程师关心的是函数如何接受参数。如果一个插件开发人员使用特殊的语法,有理由相信他们没有太多的jQuery或JavaScript的编程经验。
     有些插件接受一个jQuery对象作为一个参数,但不允许链式使用该对象,例如,$.myPlugin( $('a') );,而不是$('a').myPlugin();这是一个很大的警告。
绿色标志将是这种格式...

$('.my-selector').myPlugin({
opt1 : 75,
opt2 : 'asdf'
});


也接受这种格式…

$.myPlugin({
opt1 : 75,
opt2 : 'asdf'
}, $('.my-selector'));

 

 

5.很少或几乎没有文档
     没有文档,一个插件的使用就非常困难,因为这是寻找问题答案想到的第一个地方。文件有各种格式,适当的文件是最好的,但良好的代码注释可以一样好。如果没有文档,或者仅仅是在博客发表的一个简单例子,那么你可能要考虑其他选择。
     良好的文档表明该插件的作者关心你这样的用户。它还表明,他们已经研究过其他插件,知道好文档的价值。


6.可怜的支持记录
     缺乏支持,表示发现问题时将难以得到帮助。更引人关注的是,它表明该插件有段时间没更新了。软件开源的一个好处是它吸引很多眼球,帮助你调试和改进。如果作者没有谈到这些人,该插件将不会更新。
     你考虑的插件最后一次更新是在什么时候?最后一次回答留言是什么时候?虽然不是所有的插件都需要像jQuery plug-ins 这个网站一样有个强有力的支持系统。警惕那些从来没有更新的插件。
     拥有历史技术支持记录,作者回应bug或者将强需求,是一个绿色标志。拥有一个支持论坛进一步表示这个插件有很好的支持,即使不是作者至少有论坛给你解决问题。


7.没有压缩版本
虽然事一个相当小的警示,如果插件的创建者并没有根据源代码提供一个压缩版本,那么他们可能不会太关注表现。当然,你可以自己去压缩,但这个警示不是讨论浪费时间的问题:这暗示了插件可能包含更为严重的性能问题。
另一方面,提供压缩,打包和gzipped版本下载是一个迹象,表明作者关心JavaScript的性能。


8.需要奇怪的Mark-up
     如果一个插件需要mark-up,那么这个mark-up应是高质量的。它应符合语义semantic sense而且足够灵活。除了很烂的前端技术,奇怪的mark-up也会使集成变得更加困难。一个好的插件插入几乎任何涵盖了任何你常用mark-up;使用一个坏插件还不如去跳火圈。
     在某些情况下,严格的mark-up是必要的,所以应该允许在一定范围内的使用。基本上,更具体的功能,更具体的mark-up需要。完全灵活的mark-up是从任何自然下降jQuery的选择是最简单的集成。


9.过度使用CSS
     许多的jQuery插件包括了CSS,css的质量和JavaScript重要是一样的。过多的CSS肯定是一个坏标志。但什么是“过度”取决于插件的目的。注重显示,如灯箱或UI插件,比简单动画驱动的插件要更多的CSS。
     良好的CSS样式,让程序更容易修改以适应你的主题风格。


10.没有其他人使用它
jQuery的用户数量庞大,最体面的插件将可能对某事有他们写的,即使它是一个“50 jQuery [fill in the blank]”。比如你做了一个简单的谷歌搜索插件,你搜索结果很少,你可能要考虑其他选择,除非该插件是全新的,或者你会找个专业写插件的工程师来修改它。
经典博客帖子的贡献是巨大的,是著名的jQuery程序员投递的更好。
最后的评估
评估插件的第三阶段,唯一剩下要做的就是使用并测试其效果如何。


11.使用和观察
     测试插件最好的方式是简单地在服务器上运行,看看结果。首先,它是否破坏了一些规则?请务必看看JavaScript的代码段。如果插件包括一个样式表,看看每个网页的布局和样式上的错误。
     此外,请问该插件的效果如何?如果它运行速度很慢或网页载入相当滞后,还是考虑其他插件吧。


12.使用JSPerf进行绩效考核
把你的插件展现效果提高到新的水平,使用JSPerf进行测试。Benchmarking会运行的一组操作多次,然后返回平均执行时间。JSPerf提供了一个简单的方法来测试一个插件运行的速度有多快。这是挑选两个几乎相同插件的重要的方式来。
  
运行中的jsPerf。


13.跨浏览器测试
     如果一个插件有很多CSS,一定要在所有你希望支持的浏览器测试样式。记住CSS可以来自外部样式表和内部JavaScript。
     即使插件没有任何CSS,无论如何要在所有浏览器上检查JavaScript错误(至少在你支持的IE浏览器的最早版本)。jQuery的核心已经处理了大多数跨浏览器问题,但插件往往使用一些的数量纯JavaScript,这往往会打破旧浏览器的规则。


14.单元测试
      最后,进一步考虑跨浏览器测试--单元测试。单元测试是测试组件插件的简单方法,支持任何浏览器或平台。如果该插件作者的下载包里已经包括了单元测试,可以打赌,这款插件能在所有跨浏览器和平台上工作。
      不幸的是,极少数插件才包括单元测试数据,但这并不意味着你不能使用QUnit plug-in执行自己的单元测试。
      用最小的设置,测试是否该插件的方法返回了预期结果。只要有一个测试失败,不要在这个插件上浪费你的时间。在大多数情况下,执行单元测试有点浪费时间,但QUnit可以帮助你确定插件的质量。QUnit的使用帮助信息,见本教程
  
QUnit运行单元测试的一个例子。


结论                                                                          
      当评估一个jQuery插件的质量,先评估代码质量。是否JavaScript有优化、没有错误?是否CSS已经调整并有效?是否mark-up的命名有语义,足够灵活?这些问题都归结为最重要的问题:这个插件很容易使用?
      jQuery的核心进行了优化和错误检查,支持它的不仅有核心团队成员,还有整个jQuery社区。虽然用同样的标准衡量jQuery插件不公平,但至少应该有一些相同的审查标准。


相关文章                                                                    
你可能对以下文章也有兴趣:
 Commonly Confused Bits Of jQuery
Spicing Up Your Website With jQuery Goodness
jQuery and JavaScript Coding: Examples and Best Practices
45 Useful jQuery Techniques and Plugins

 原文地址

分享到:
评论

相关推荐

    自己挑选的Jquery插件集

    本篇文章将深入探讨标题所提及的“自己挑选的jQuery插件集”,以及这些插件如何为开发者带来便利。 1. **UI组件插件** jQuery UI是官方提供的一个扩展库,包含了各种用户界面元素,如日期选择器(Datepicker)、...

    Jquery 插件大集合

    本篇文章将围绕"Jquery 插件大集合"这一主题,深入探讨jQuery插件在网页设计和开发中的应用,尤其是那些用于创建画廊效果的插件。 首先,我们来了解什么是jQuery插件。jQuery插件是开发者基于jQuery库编写的扩展...

    整理的jquery插件

    在本资料包中,"JQuery插件整理"包含了多个精心挑选的jQuery插件,这些插件涵盖了不同的应用场景,如表单验证、图片轮播、弹出框、滚动效果等。下面将对这些常见jQuery插件及其功能进行详细解释。 1. **表单验证...

    jQuery 收费插件包大全

    1. **3D效果**:jQuery插件中的3D效果可以为网页增添深度感和动态性,例如3d桌面插件,它可能提供了模拟真实桌面环境的3D视图,使用户在浏览网站时有更沉浸式的体验。这种技术常用于产品展示、图像旋转或动画效果中...

    jquery 插件

    **jQuery 插件详解** jQuery 是一款非常流行的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画制作和Ajax交互等任务。...在实际工作中,可以根据需求挑选合适的插件,或自定义开发以满足特定项目需求。

    jQuery手机移动端时分秒时间选择插件

    5. **自定义插件结构**:jQuery插件通常遵循一定的构造模式,涉及闭包和原型链,以保持代码的组织性和可扩展性。这个插件可能包含一个初始化函数,接收用户配置参数,并提供公共方法供外部调用。 6. **CSS和Sass/...

    jquery的颜色选择插件

    jQuery颜色选择插件是一种基于JavaScript和jQuery框架的交互式颜色选择工具,它允许用户通过可视化界面挑选颜色,从而提高网页的交互性和用户友好性。这些插件通常包含各种预设颜色,支持自定义颜色输入,并提供多种...

    20款非常优秀的 jQuery 工具提示插件 推荐

    在选择使用插件之前,建议先了解项目需求,然后根据插件特点和兼容性来挑选最适合的工具提示插件。使用这些插件,可以帮助开发者快速地为网页添加优雅的工具提示效果,从而提高用户交互体验和网站的专业形象。

    jquery 颜色选择器插件

    《jQuery颜色选择器插件——colpick-jQuery-Color-Picker深度解析》 在网页设计与开发中,用户界面的交互性和美观性是至关重要的。其中,颜色选择器作为一个常用的组件,能让用户方便地选取所需的颜色,提升用户...

    28个jQuery常用插件.

    这些jQuery插件涵盖了网页开发中的多个方面,从用户交互到数据可视化,再到页面布局优化,都有相应的解决方案。通过合理运用这些插件,开发者可以提高工作效率,同时为用户提供更加丰富和友好的网页体验。

    jquery滚动插件,各种样式的都有.zip

    总之,这个压缩包包含了一系列用于实现各种滚动效果的jQuery插件,无论你是新手还是经验丰富的开发者,都可以根据项目需求挑选合适的插件,快速地为你的网页添加吸引人的滚动功能。记得在实际应用中,不仅要关注视觉...

    jquery常用插件

    本压缩包中包含了40多款经典的jQuery插件,涵盖了各种常见的网页交互需求。 1. **轮播插件**: 轮播插件如`bxSlider`和`carousel`,使得图片滑动展示或内容滚动变得更加流畅和互动,通常用于首页焦点图或产品展示...

    颜色选择器jquery.colorpicker

    jQuery.colorpicker是一款基于JavaScript库jQuery开发的颜色选择器插件,它提供了一个美观且易于使用的界面,让用户可以方便地挑选和设置颜色。这个插件不仅提供了基本的颜色选择功能,还支持自定义配置,以满足不同...

    Jquery颜色选择器

    jQuery颜色选择器插件通常是基于jQuery核心库进行开发的,它为开发者提供了一种直观且用户友好的界面,使得用户可以轻松地在多种颜色中挑选。这些插件通常包含一个调色板,用户可以通过点击或滑动来选择所需颜色,还...

    jquery插件示例(autocomplete+ingrid+dataTables)(asp.net)

    这个是我在学习jquery过程中积累下来的一点东西.有些示例在我前面上传的资源中已经有了.里面都是一些入门性的示例.数据库采用的SQLServer2000的northwind数据库.数据访问用了Enterprise library DAAB;虽然只是简单的...

    50个经典jquery实例

    这个“50个经典jQuery实例”压缩包显然包含了一系列精心挑选的示例,旨在帮助初学者快速掌握jQuery的核心功能和常用技巧。下面,我们将详细探讨这些实例可能涵盖的知识点,并解释它们在实际开发中的应用。 1. **...

    懒人修改jQuery.blocksit插件实现瀑布流结合图片延

    网上有很多瀑布流插件,今天特意挑选了一个比较简单的插件jQuery.blocksit.js 不过他只能实现图片的流式排列,无法实现图片预加载功能(即:边拖拉网页边加载图片) 懒人站长特意在此瀑布流上增加了jQuery....

    jQuery商品分类选择

    "www.jq22.com.txt"和"jquery插件库.url"可能包含了关于jQuery和插件的更多资源和教程链接,方便开发者进一步学习和研究。jq22.com是一个专门收集和分享jQuery插件的网站,提供了丰富的实例和代码参考。 "img"目录...

    jquery-ui-1.10.3.custom

    在“自定义”方面,jQuery UI 允许开发者根据项目需求挑选并整合所需的组件,避免加载不必要的代码,从而减少页面加载时间和优化性能。这主要通过其在线定制器(Download Builder)来实现。开发者可以选择需要的部件...

    jquery大图片切换效果打包

    "jQuery大图片切换效果打包"这个资源集合提供了多种精心挑选的jQuery插件和代码示例,旨在帮助开发者创建出吸引人的、视觉效果丰富的网页图像展示。 jQuery是一种广泛使用的JavaScript库,它简化了DOM操作、事件...

Global site tag (gtag.js) - Google Analytics