Pregunta

He hecho la vida difícil para los desarrolladores de HTML / CSS al hacer cualquier interacción que tenga un efecto secundario en un botón y NO en un hipervínculo.

Por ejemplo, cambié " Clear Basket " en un sitio de compras desde un enlace a un botón. Bajo la premisa de que cualquier acción que tenga un efecto secundario debería ser un botón, no un hipervínculo. (incluso aunque una araña o un robot nunca lleguen a este punto) ¿Cómo se relaciona esto con REST?

La mejor respuesta tendrá buenas razones por las que puedo explicar por qué hago las cosas difíciles para los chicos de HTML / CSS, ... o por qué me equivoco :-), ... tal vez estoy siendo purista pero sin ninguna razón real?

Nota: no soy reacio a poner la funcionalidad ajax que tiene efectos secundarios completos en un hipervínculo o incluso en un evento de cambio de selección.

Saludos. Murray.

¿Fue útil?

Solución

Creo que hiciste lo correcto, pero justificarlo probablemente esté fuera del dominio de " REST " ;.

Si estos enlaces son realmente solo etiquetas <a> que hacen que el navegador haga una solicitud GET y luego haga clic, entonces no deberían tener ningún efecto secundario porque se supone que GET es, según las especificaciones de HTTP, seguro e idempotente. Vea comentarios anteriores sobre arañas siguiendo los enlaces, etc.

Ahora si " enlaces " Si utiliza JavaScript para hacer una POST al servidor cuando se hace clic en él, o algún tipo de truco como ese, entonces son A-OK desde el punto de vista de HTTP. Probablemente más trabajo del que valen, pero RESTful.

Pero también hay que considerar el diseño de la interfaz de usuario. Debido a que en HTML básico sin CSS y JavaScript, un enlace siempre es un GET, los usuarios han sido entrenados desde 1994 para esperar que cualquier cosa que parezca sea un hipervínculo sea seguro e idempotente. Al hacer algo diferente, sus diseñadores violan el principio de la menor sorpresa. Esto parece algo en lo que Jacob Nielsen te respaldaría.

Otros consejos

Esto realmente no tiene mucho que ver con REST, pero trato de seguir esta simple regla:

Hyperlinks are for navigation.
Buttons are for interaction.

Realmente no importa si su " stateful " Las acciones son enlaces o botones. Puede tener un enlace que elimine / agregue, etc. La consistencia es lo que importa. Entonces, si desea que estas acciones sean botones, está bien. Creo que las personas talentosas de CSS pueden hacer que los enlaces se vean como botones. Es posible que no necesite botones html en absoluto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top