【问题标题】:Custom event logging for Javascript frameworksJavascript 框架的自定义事件日志记录
【发布时间】:2010-10-26 15:59:22
【问题描述】:

想象一下,我有一个 Web 应用程序,其中包含使用您最喜欢的 Javascript 库编码的漂亮组件。我大量使用自定义事件来减少这些组件之间的依赖关系,因此您可以轻松地将它们放置在多个上下文中,在页面上重复它们,和/或按照我认为合适的方式嵌套它们。

这是一张可爱的图片,但调试可能会很痛苦,因为我还没有找到一种方法来记录我的自定义事件。理想情况下,我希望能够在我选择的框架中打开日志记录(我目前使用 Prototype),然后在 DOM 中的任何一个或多个点上获取已触发和观察到的事件的运行日志。

我一直在与其他 F2E 讨论这个问题,并尝试了一些方法:

  • Visual Event 是一个小书签,可以很好地可视化事件绑定的位置,但不提供运行时日志。
  • Antenna就是这样一个日志,但是好像有点bug,需要修改原型库本身,感觉就是hack。

如何获得我想要的自定义日志记录?

【问题讨论】:

    标签: javascript event-handling prototypejs dom-events custom-eventlog


    【解决方案1】:

    如果您使用 Prototype,我会在 wrap 周围使用 document.fire 的日志记录功能。

    【讨论】:

    • 在 Prototype 中,我想你会包装 Event.observe。不过,其他人尝试过这种方法收效甚微,这就是为什么 Antenna 的作者实际上直接修改了脚本,而不是简单地进行这种包装。我正在寻找一个不直接修改库文件的工作实现。
    【解决方案2】:

    您可能使用了一些在 Object.prototype 中定义的 X.fireEvent 方法(可能不熟悉您的固件)。 我会研究用你的版本覆盖这个方法的方法,它会做日志。

    【讨论】:

    • 这似乎是 jQuery 实现的开始,对吗?
    • 我不熟悉 JQ,但在 Mootools 中我会简单地“扩展” [fire] 方法。我认为 JQ 中也有类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2019-11-15
    相关资源
    最近更新 更多