HTTP 状态代码 - Backbone.js 和 Jquery
HTTP status codes - Backbone.js and Jquery
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
有效使用的项目,但我总有一天会成功。
任何对你的网站内部工作感兴趣的人都可以看看控制台,但这应该没有问题,你也不应该过度迎合干净的外观,只要确保你自己的流程是健全的。
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 用于发现哪个JS/jQuery脚本正在冻结页面的工具或技术
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 如何使用JS/jQuery在另一个网站上显示iframe中的特定内容
- 在坐标上模拟点击坐标js/jQuery
- 如何插入js/jquery变量isideHTML标记
- 我需要JS/jQuery中的倒计时计时器
- 当我使用JS/jQuery/any插件点击图像时,我如何使背景变暗+不可点击,并放大和居中我的图像
- JS/jquery:我将如何遍历HTML中的每个图像
- 非常奇怪的JS/jQuery行为-alert()包含/排除
- JS/Jquery - 如果输入具有数组的任何名称,则返回关联的值
- 使用 js/jQuery/css 在重力形式中覆盖 !important
- 如何在 js / jquery 中绑定“数据追加”事件
- 解析 RSS 命名空间媒体:缩略图 (js/jQuery)
- AJAX/page refresh kills JS/jQuery
- 带有post值的JS jQuery重定向,不带<表单>
- 改变与“"至“-"(JS/Jquery)
- 我正在尝试使用JS/JQuery自动对网站中的文本执行多个查找和替换操作
- 是否覆盖网站上文本输入区域的默认移动设备键盘?(HTML/JS/jQuery)