当我创建一个jQuery插件时,最好的做法是在需要时包含Modernizr吗?

时间:2011-07-15 06:11:16

标签: jquery plugins mobile modernizr

我只是想知道,因为我一直在努力寻找非常简单的事情:我目前正在编写一个jQuery移动轮播插件,您可以通过滑动从图像切换到图像。对于移动设备,使用CSS3转换/转换是有意义的,因为这样可以提高性能。

为了测试功能是否可用,我可以使用Modernizr,但我并不那么热衷,因为包含另一个脚本只是一个简单的轮播插件似乎有点太多了,特别是在移动世界,因为bandwith是非常珍贵的。你们只是将Modernizr部分复制到插件中,还是将Modernizr作为先决条件?

干杯

2 个答案:

答案 0 :(得分:0)

如果您只需要测试浏览器是否具有某种功能,那么最好只使用YepNope加载程序。

答案 1 :(得分:0)

我会用它打包脚本并指出它取决于它。

我会这样做有两个原因:

  1. 如果发布了修复错误或关闭作为安全漏洞的脚本更新,则可以快速轻松地删除最新版本
  2. 如果他们在其他地方使用该脚本,那么它将减少下载到客户端的重复代码。
  3. 大小方面显然存在相反的论点,如果他们不在其他地方使用Modernizr,他们将不得不为这一方法下载整个脚本。

    我猜它是一个判断调用,取决于他们需要功能的可能性。如果他们使用的是使用浏览器超现代功能的插件,我猜他们可能会在其他地方使用现代功能,并且需要进行额外的检查。

    使用A Seam

    您可能会考虑解决此问题的一种方法是use of a seam at your third party boundary code。这意味着您可以在自己的包装函数中将调用打包到第三方库。然后,您可以轻松地在Modernizr或您自己的所需函数版本之间进行交换,以便您可以发布依赖项和无依赖项版本。

    在这种情况下,我个人会说要求用户将库作为先决条件包含在内,因为它是一个非常常见的库。