javascript - HTTP 状态代码 - Backbone.js 和 Jquery

标签 javascript jquery http backbone.js get

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

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

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

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

由于 backbone.js 使用 jQuery 执行 GET,Jquery 报告了错误,确实如此。 4XX 是一个有效的错误,应该从中恢复,我的客户端应用程序没有损坏,它只是需要稍微不同的行为。

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

最佳答案

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

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

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

您可以默默地忽略错误并且不指出它们,但是您的用户会感到困惑并且会导致意想不到的问题。我不能鼓吹使用完美的错误处理,因为我自己也在不断进步。

关于javascript - HTTP 状态代码 - Backbone.js 和 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11253298/

相关文章:

javascript - Google map (gmap3 插件),点击时淡出叠加

javascript - 从多个 JSON 文件、Javascript、AJAX 进行实时搜索

javascript - 使用 jQuery 访问 XML 值

http - 使用 OWIN 添加多个 WWW-Authenticate header

javascript - 如何获取 JavaScript 中弹出窗口的文本?

javascript - 无法在\node_modules\electron 中解析 'fs'

javascript - 仅使用 html css 和 js 为来自移动设备的请求呈现不同的 html 页面

c# - Silverlight:命名空间中不存在 Web

PHP 路由不重定向

javascript - 对象值与数组indexOf中的任何一个匹配