HTTP 状态代码 - Backbone.js 和 Jquery

HTTP status codes - Backbone.js and Jquery

本文关键字:js Jquery Backbone 状态 代码 HTTP      更新时间:2023-09-26

Backbone.js有一个简洁的功能,您可以使用标准HTTP动词将更改同步回服务器。

例如,你可能有一个模型对象和一些执行get的代码:

var coolModel = Backbone.Model.extend({url:'mysite/mymodel'});
var myCoolModel = new coolModel();
myCoolModel.fetch({error:processError});

在服务器返回 4XX 或 5XX 的情况下,运行错误函数"processError",这很好,您可以按照任何适合的方式处理错误。

作为主干.js使用 jQuery 来执行 GET,Jquery 报告错误,它确实如此。4XX是一个有效的错误,应该从中恢复,我的客户端应用程序没有损坏,它只需要表现得略有不同。

我的问题是 - 在浏览器控制台窗口或状态栏中显示从 jQuery 引发此错误是否被认为是不好的做法?我是否应该以某种方式抑制此错误,以便在错误可恢复时,生产中的用户不会看到浏览器报告的错误?还是在HTTP的土地上保持原样是正确的?

Backbone 中处理错误是一个非常有趣的话题,我希望在某个时候写一个。 以非侵入性的方式直观地向用户指示错误非常好。 需要考虑的一些事项是:

  • 您的用户未查看状态栏或开发人员工具
  • 您的用户期望您的应用程序具有特定行为
  • 当应用程序行为不正确时,视觉问题指示器很重要

我建议考虑失败如何影响用户的意图。 例如,如果他们正在获取第一页的数据并且该数据未正确返回,您将需要通过显示检索数据的失败来处理错误(甚至更好地从缓存中回退以前加载的数据......它存在)。 如果目的是保存项目,并且返回的错误代码为 400,则绝对不成功,应指示用户应重试保存(或者尝试按间隔重新保存)。

您可以静默地忽略错误而不指示错误,但您的用户会感到困惑,并会导致意外问题。 我不能宣扬使用完美的错误处理,因为我自己仍然在变得更好。

我会说HTTP状态代码的存在是有原因的,如果它们的原因有效,则完全有效,所以是的,只需使用它们。但是400表示Bad Request,这意味着输入在语法上是错误的您应该发送更合适的标头(例如409用于冲突,428用于失败的前提条件等)。我正在努力想出一个对418 I'm a teapot有效使用的项目,但我总有一天会成功。

任何对你的网站内部工作感兴趣的人都可以看看控制台,但这应该没有问题,你也不应该过度迎合干净的外观,只要确保你自己的流程是健全的。