我一直在使用 javascript 来提交 HTML 表单,以获得一些说服力。我想知道与使用提交按钮使用经典表单提交相比,这种方法是否有任何缺点
5 回答
使用纯 HTML 更好,原因有很多:
- 如果您的用户没有启用 JavaScript,或者您的代码中有 JavaScript 错误,您的表单仍然有效。
- 纯 HTML 表单更容易编写,更难搞砸
- 实际按钮在语义上比为您提交表单的魔术链接或 div 更好。这有助于诸如标签排序、操作系统集成、屏幕阅读器之类的事情,并且对于在您之后处理代码的程序员来说更清楚。
- 浏览器已经有经过实战测试的代码来提交表单。你为什么要无缘无故地重写那段代码?它增加了风险、复杂性和时间。
- 不编写 JavaScript 代码意味着您有更多时间做其他事情,比如不再编写代码。
如果某些东西已经存在并且适用于您的用例,请不要重新发明轮子!
我能想到的唯一缺点是,如果您需要重新加载页面,因为您正在与每次重新生成 HTML 的旧站点集成......但是如果您正在构建一个新系统,或者它已经这样做了,在我的意见是更好。节省带宽、计算时间、重新渲染时间等。如果您只是在谈论提交 HTML 表单,那真的没有什么区别。
不,真的没有缺点。您可能有更多的代码,而不是仅仅将所有内容包装在一个表单中并提交按钮,但是您当然仍然可以利用 https 以及这些天网络可能提供的所有其他内容。
最主要的缺点是无法为禁用 Javascript 的访问者提供功能。您可以通过在禁用 javascript 时提供不同的页面来重定向到同时支持两者。
以下是用于检测和响应禁用 javascript 的方法列表:
<noscript>
HTML noscript 标记。- 使用 jQuery 或 Javascript 设置 cookie
- 使用 Javascript 隐藏使用 CSS 的区域。
就个人而言,我不喜欢 HTML 表单。HTML 是一种布局语言,在这方面很差。保持布局和功能分离是面向对象编程的核心原则。您是否将 HTML 和 JavaScript 视为以这种方式表示这些功能可能是个人选择。你可以说 CSS 是布局。
如果您正在编写一个简单的页面,几乎没有其他内容,那么使用 HTML 表单不是一个坏主意。
如果您打算编写一个具有许多不错功能的大型应用程序,那么至少对我来说,将它放在一个地方是有意义的。
如果您开始引入 JSON 或任何类型的客户端/服务器关系,而不是“这是我的文本或下拉选择”,那么请采用程序员的方法而不是网页设计师。JavaScript 为您提供了更多的灵活性。您可以与服务器聊天,而不会在页面上发生任何事情。
如果您使用 jQuery 之类的库,则编码开销非常小。