我发现使用Ajax验证表单对于避免代码重复非常有用。在实现它之前,我感兴趣的是,与简单的javascript验证相比,这种技术是否有任何缺点。我只看到几个论点,但我认为将它们考虑在内是非常弱的:
我还有其他任何争论吗?
答案 0 :(得分:2)
从用户体验的角度来看,Ajax验证非常棒,因为您可以立即获得反馈。
要记住的一件事是,即使您使用ajax验证表单,仍然需要在提交的服务器到达服务器时重新验证提交的值以防止安全漏洞,因为攻击者可能只是使用像curl这样的东西。发送任意值。
答案 1 :(得分:1)
如果您要问的是
然后没有。在结束点 - 你得到一个用户输入错误的手势。我只是在问我是否会验证 使用javascript而不是ajax的表单 我将获得任何我用ajax无法做到的事情
但是,我不会轻易忽视服务器负载。
每个表单另外5个请求 - 重做服务器检查它需要在表单提交上执行 - 这是关于表单上服务器工作量增加一倍。
另外 - 请注意,AJAX也是javascript,所以你并没有完全摆脱它。
最后 - 带有服务器往返的JavaScript(以及AJAX是服务器往返)不会像简单的JavaScript一样直接。
然而 - 是的。它是代码重复。这是您的交易,如果您的项目可以接受,您做出的任何决定都是有效的。
编辑:修正了错字+移动到社区维基
答案 2 :(得分:1)
采取相反的立场:
1)5或6个请求没什么大不了的 - 但每个用户每个用户的连接数是5到6倍 - 也就是说。如果您正在谈论每天将服务器从100k连接到600k连接,那么最好再考虑一下。
3)宽带无处不在,但无线连接速度慢且不可靠。根据您的实施方式,表格可能会非常笨重。
你肯定需要在服务器上重新验证 - 但这就是你所说的:无论如何,通过ajax重用服务器上的逻辑,而不是用JS在客户端上复制它。
只是旁注:有些框架允许您在一个地方声明验证,然后为您生成Javascript(非ajax IIRC)和服务器端。我知道JSF(Java Server Faces有这个),我认为.net也有。