【问题标题】:Trying turn this jQuery slideShow plugin into a neat and modular "module"尝试把这个 jQuery slideShow 插件变成一个简洁的模块化“模块”
【发布时间】:2016-09-01 14:33:20
【问题描述】:

我制作了一个幻灯片 jQuery 插件,名称为 $.fn.slideShow,其工作原理如下:

.slideShow(int transitionDelay, string transtionType, string 幻灯片标签

如您所想,intstring keywordsjavaScript 中不存在,我有只需将它们放在那里为每个参数指定数据类型第一个必要参数是(以毫秒为单位)每张幻灯片AKA转换延迟的延迟。第二个参数是可选的。它指定转换类型(默认值:正常 AKA 无转换)。可能的输入是 pushnormal/no-transitionfade;这是每张幻灯片不同的过渡动画。第三个也是最后一个参数指定幻灯片包含在哪个 HTML 标记中,(默认值:li)。此幻灯片显示在插件的选择器中。现在您对我的插件的作用有了基本的了解,让我们来谈谈问题。

您知道,编写代码实际上有两种主要方法。一是弄得乱七八糟,没人看得到,二是整整齐齐,模块化。但是要使代码整洁和模块化并不容易;因为您需要想出最可重用和可回收的存储变量的方法,以及更多“模块化”代码的方法。

显然,我不知道如何在这种情况下模块化我的代码。我到处都有大量全局变量,许多重新声明的变量等。这将是我的最佳方法(不是基于意见条款或偏好,而是基于真实的事实和表现) 将这样的 jQuery 插件变成功能齐全的模块?使用像 IIFE 这样的模块化模式会有帮助吗?我还看到了模块化接口,例如 browsify,但我不确定是否开始或至少如何这样做。

【问题讨论】:

    标签: jquery plugins modular


    【解决方案1】:

    在更高的层次上,绩效辩论可能会成为一项很大程度上是学术性的练习,而且有很多裂痕。我建议采用您理解的模块化插件模式,并且可以以您可以解释的方式构建,这样读者可以适应。 推荐https://toddmotto.com/mastering-the-module-pattern/ 作为对模块化模式的更好解释,而不是我在此处提供的,并在此处提供更广泛的概述:https://addyosmani.com/resources/essentialjsdesignpatterns/book/#jquerypluginpatterns

    此处的其他模式方法:https://www.viget.com/articles/jquery-plugin-patterns。评论更具体的代码示例/查询可能更容易

    【讨论】:

    • 太棒了!现在,模块化接口的主要问题被称为“加载缓慢的模块”,无论如何要解决这个问题?
    • 就我个人而言,我还没有参与过足够大的项目,以至于这不会成为一个问题,但是我发现这篇文章很有趣:tomdale.net/2012/01/amd-is-not-the-answer 包括 cmets 中的反论点(但要小心不要被吸入头发分裂)。除了对文件数量保持警惕之外,缩小代码并使用 cdn 有助于sitepoint.com/7-reasons-to-use-a-cdn
    • 确实现在它的加载速度要快得多,尤其是在它被缓存之后。缩小有帮助,现在不使用 AMD,这个问题特别得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多