阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      插件 jQuery.tiny pubsub 中文 API 文档

      插件 jQuery.tiny pubsub 中文 API 文档 https://github.com/cowboy/jquery-tiny-pubsub

      一个非常非常非常小的 jQuery pub / sub 实现。

      例子

      <script src="jquery.js"></script>
      <script src="dist/tiny-pubsub.min.js"></script>
      <script>
      // Creates a "named" logging function.
      function createLogger(name) {
        return function(_, a, b) {
          // Skip the first argument (event object) but log the name and other args.
          console.log(name, a, b);
        };
      }
      
      // Subscribe to the "foo" topic (bind to the "foo" event, no namespace).
      $.subscribe('foo', createLogger('foo'));
      // Subscribe to the "foo.bar" topic (bind to the "foo" event, "bar" namespace).
      $.subscribe('foo.bar', createLogger('foo.bar'));
      // Subscribe to the "foo.baz" topic (bind to the "foo" event, "baz" namespace).
      $.subscribe('foo.baz', createLogger('foo.baz'));
      
      // Publish arbitrary values.
      $.publish('foo', [1, 2]);
      // logs:
      // foo 1 2
      // foo.bar 1 2
      // foo.baz 1 2
      
      $.publish('foo.bar', [3, 4]);
      // logs:
      // foo.bar 3 4
      
      $.publish('foo.baz', [5, 6]);
      // logs:
      // foo.baz 5 6
      
      $.unsubscribe('foo.bar');
      $.publish('foo', [7, 8]);
      // logs:
      // foo 7 8
      // foo.baz 7 8
      </script>
      

      文档

      注意:忽略传递给订阅回调的第一个参数(jQuery 事件对象)。

      另一个注意事项:以前的版本(v0.4 +)是为了尝试删除第一个参数并创建更具未来性的 API 而编写的,但不幸的是,这导致了更不优雅,更大和更慢的代码。这个插件的重点是 TINY,用于只有尺寸(不是性能或可用性)是主要关注点(推文,代码高尔夫等)的情况。**

      我经常看到关于 jQuery 的事件系统如何具有不必要的开销的评论,这使得它无法用作 Pub / Sub 实现的核心。jQuery 事件系统是经过验证的,它的架构既快速又健壮,而且这个插件的绝大多数用户都不应该遇到任何类型的性能问题。

      因为这个插件的 $.subscribe,$.unsubscribe 和 $.publish 方法都使用 jQuery 的。对() ,.off()和。trigger()方法内部,这些方法完整签名提供给您。

      您可以使用命名空间来更好地控制取消订阅和发布。

      只需使用这个方便的术语指南(jQuery 事件术语→Pub / Sub term),一切都应该有意义:

      • 在。.. 订阅
      • 关闭→取消订阅
      • 触发→发布
      • 类型→主题

      此外,如果您需要它,这些方法与 jQuery.proxy()方法完全兼容,以防您不仅希望更多地控制订阅回调绑定到哪个上下文,而是希望能够非常轻松地取消订阅回调参考。

      关于性能:如果在某些时候,您的应用程序开始处理大量性能问题开始出现的消息,您可以随时使用相同的 API 编写替换的“jQuery Not-So-Tiny Pub / Sub”插件,并将其放入这个插件的替代品。但请记住,您还需要添加上述功能。

      目录
      本文目录
      目录