html - 链接应该有状态副作用吗?

标签 html ajax rest post get

我通过将任何具有副作用的交互变成按钮而不是超链接,让 HTML/CSS 开发人员的生活变得困难。

例如,我将购物网站中的“Clear Basket”从一个链接更改为一个按钮。 前提是任何有副作用的 Action 都应该是按钮而不是超链接。 (即使是蜘蛛或机器人也永远不会达到这一点) 这与 REST 有什么关系?

最好的答案将有充分的理由,我可以用它来说明为什么我让 HTML/CSS 人员感到困难,...或者为什么我错了 :-),...也许我是纯粹主义者没有真正的原因?

注意:我不反对将具有全状态副作用的 ajax 功能放在超链接甚至选择更改事件上。

干杯。 默里。

最佳答案

我认为您做对了,但证明它的合理性可能超出了“REST”的范畴。

如果这些链接真的只是<a>导致浏览器发出 GET 请求然后单击的标签,那么它们不应该有任何副作用,因为根据 HTTP 规范,GET 应该是安全和幂等的。请参阅链接等之前关于蜘蛛的评论。

现在,如果“链接”使用 javascript 在单击时真正对服务器执行 POST,或者类似的某种技巧,那么从 HTTP 的角度来看它们是 A-OK。可能比它们的值(value)更多的工作,但是 RESTful。

但是用户界面设计也需要考虑。因为在没有 CSS 和 javascript 的基本 HTML 中,链接始终是 GET,自 1994 年以来,用户一直被训练期望任何看起来像超链接的东西都是安全和幂等的。通过做一些不同的事情,你的设计师违反了最小惊喜原则。这似乎是 Jacob Nielsen 会支持你的事情。

关于html - 链接应该有状态副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403220/

相关文章:

html - 让表格与其他 div 正确堆叠

spring - 使用 Spring Data Rest 发布到集合关联

java - 从 chrome developer studio 触发一个事件

php - 我怎样才能让 PHP INCLUDE 工作?

javascript - 将鼠标悬停在图像和链接上时颜色发生变化

javascript - 使用 javascript 进行打印时限制每页的行数

javascript - 获取 AJAX 响应的特定部分

jquery - xajax 并选择

javascript - 具有局部 View 的 Laravel 4 ajax

c# - HttpClient PostAsync 到 Blogger API