我想知道处理通过ajax提交的表单的最佳做法是什么。具体来说,我想知道处理包含错误的表单的最佳方法是什么。
我在提交有错误的表单时会看到两个可能的选项:
一个。服务器返回一个名称值对的字段名称/错误消息的JSON文档。然后需要在客户端进行处理,并且需要通过在每个字段前面添加错误消息并更改表单的样式(例如向字段添加错误类)来更改表单。
OR
B中。服务器只返回一个新的HTML片段,其中包含预先应用了错误消息和样式的表单。除了交换表单外,无需处理任何客户端。
对我来说,选项B似乎更简单/更快捷,但我不禁觉得这不是'最佳实践'。两种方法都有利弊吗?
答案 0 :(得分:1)
我认为逻辑分离是一个巨大的问题。
随着项目的发展,您通常拥有一个前端团队和一个后端团队。想象一下,网站得到了巨大的改造,但逻辑保持不变。在服务器端强制执行布局时,选项B更难以更改样式。
应用程序逻辑(这种情况下是服务器端验证)应该与表示层分开(这种情况是浏览器呈现的html / css)。
但是在一天结束时,我们得到报酬以产生结果,所以如果你没有想要获得最优质代码的学院奖,并且你需要支付账单,那就让它以最快的方式完成。
答案 1 :(得分:0)
我会选择第一个选项。 第二个选项只会增加服务器上的负载......您总是希望避免这种负担。另外,我觉得如果样式是在服务器端完成的,那么你的网站并不是完全模块化的......所有样式都只能在前端完成。
答案 2 :(得分:0)
这是一个意见问题,但有一些关于这个主题的客观事项。您的第一个选择,纯JSON选项最适合专注于速度的应用程序,以保持尽可能小的HTTP请求。
另一个选择,处理你的表单服务器端然后通过AJAX返回新表单对我来说似乎没有太多的优势。如果你要走那条路,那么为什么要麻烦玩AJAX呢?为什么不直接向服务器发帖?
我通常更喜欢前端验证和服务器端验证。这样一来,如果事情无效,你就可以完全避免JSON调用,但是如果有人偷偷摸摸某些东西,那么服务器端的代码就会验证。
答案 3 :(得分:0)
我会在前端建立一个JSON方案进行验证。只是基本的东西,比如你在每个字段上检查的内容,哪些字段是可选的等等......它会被覆盖到每个带有表单的页面中。然后让你的前端开发人员进行预验证,以避免以对他们最有意义的任何方式进行不必要的调用。
预先构建的错误并不违反我所知道的任何最佳实践,并且它不是一种可怕的方式(人们倾向于在窗体中将窗口的UI手册抛出窗外),但有时候你会想为不同的问题提供更多细节或不同的错误。
总是瞄准你的蛋糕和吃它,IMO。