Pergunta

Eu fiz a vida difícil para os desenvolvedores HTML / CSS, fazendo qualquer interação que tem um efeito colateral em um botão e não um hyperlink.

Por exemplo, eu mudei o "Clear Basket" em um site de compras a partir de um link para um botão. Na premissa de que qualquer ação que tem um efeito colateral deve ser um botão não um hiperlink. (Mesmo tho uma aranha ou robô nunca vai chegar a este ponto) Como isso se relaciona com RESTO?

A melhor resposta terá boas razões que eu possa usar a respeito de porque eu faço as coisas difíceis para os caras HTML / CSS, ... ou por que eu estou errado :-), ... talvez eu estou sendo purista, mas sem motivo real?

Nota:. Eu não sou avesso a colocar ajax funcionalidade que tem efeitos colaterais statefull sobre uma hiperligação ou mesmo no evento de seleção do esperado

Saúde. Murray.

Foi útil?

Solução

Eu acho que você fez a coisa certa, mas justificando é provavelmente fora do domínio de "descanso".

Se estas ligações são verdadeiramente marcas apenas <a> esse resultado no navegador fazendo uma solicitação GET em seguida, clicar, então eles não devem ter quaisquer efeitos secundários porque GET é suposto ser, pelo HTTP especificação, seguro e idempotent. Ver comentários anteriores sobre aranhas seguindo os links, etc.

Agora, se o "ligações" javascript utilizado para realmente fazer um post para o servidor quando clicado, ou algum tipo de truque assim, então eles são A-OK de HTTP ponto de vista. Provavelmente mais trabalho do que eles valem, mas RESTful.

Mas há design de interface de usuário para considerar também. Porque em HTML básico, sem CSS e javascript um link é sempre um GET, os usuários foram treinados desde 1994 que esperar qualquer coisa que aparência como um hyperlink para ser seguro e idempotent. Ao fazer algo diferente, seus designers estão em violação do princípio da menor surpresa. Este parece ser algo Jacob Nielsen iria apoiá-lo por diante.

Outras dicas

Este realmente não tem muito a ver com REST, mas eu tento seguir esta regra simples:

Hyperlinks are for navigation.
Buttons are for interaction.

Realmente não importa se suas ações "stateful" são links ou botões. Você pode ter um link que exclusões / acrescenta, etc. A consistência é o que importa. Então, se você quer ter essas ações sejam botões, isso é ótimo. Eu acho que talentosos CSS as pessoas podem fazer ligações olhar como botões. Você pode não precisar html botões em tudo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top