我正在设计一个相当健壮的富客户端应用程序,我倾向于将客户端代码基于 Backbone,并且我对可用/推荐的错误报告实现感到好奇。
由于我们对胖客户端代码的依赖,我们想尽可能多地了解发生的 javascript 错误。
想法?
我正在设计一个相当健壮的富客户端应用程序,我倾向于将客户端代码基于 Backbone,并且我对可用/推荐的错误报告实现感到好奇。
由于我们对胖客户端代码的依赖,我们想尽可能多地了解发生的 javascript 错误。
想法?
我建议让您的主App
命名空间对象扩展Backbone.events
并侦听“错误”事件并相应地报告详细信息。这将是聚合所有错误并统一报告它们的一个很好的中心位置。您可以结合各种技术来实际记录错误,包括向用户显示通知、将一些详细信息添加到 DOM 中的隐藏节点以获得技术支持,或者将详细信息发送到 Web 上的远程服务。
然后在整个代码库中,您将需要实际检测/捕获错误(这通常意味着显式编码以在 JavaScript 中检查它们),收集相关信息(可能是一个不错的堆栈跟踪),并在App
事件总线。这可能是错误,例如渲染视图时应该存在的 DOM 选择器丢失、从服务器接收到的意外数据等。
对于 AJAX/HTTP 请求的错误,您可以Backbone.sync
在那里覆盖并添加额外的错误报告。这是一个很好的中心位置,您与服务器的所有交互都将在这里发生。遵循相同的模式来检测错误,收集详细信息,将“错误”事件触发到主App
事件总线,然后如果可能的话允许应用程序继续,或者如果错误不可恢复,则优雅地降级/失败。