Domanda

Ho reso la vita difficile agli sviluppatori HTML / CSS rendendo qualsiasi interazione che ha un effetto collaterale in un pulsante e NON in un collegamento ipertestuale.

Ad esempio ho cambiato il " Cancella il basket " in un sito di shopping da un collegamento a un pulsante. Premesso che qualsiasi azione che abbia un effetto collaterale dovrebbe essere un pulsante e non un collegamento ipertestuale. (anche se un ragno o un robot non arriva mai a questo punto) In che modo questo si collega a REST?

La migliore risposta avrà buone ragioni che posso usare per spiegare perché faccio cose difficili per i ragazzi HTML / CSS, ... o perché sbaglio :-), ... forse sto purista ma senza una vera ragione?

Nota: non sono contrario a mettere la funzionalità ajax che ha effetti collaterali di stato su un collegamento ipertestuale o persino su un evento modificato nella selezione.

Saluti. Murray.

È stato utile?

Soluzione

Penso che tu abbia fatto la cosa giusta ma giustificarla è probabilmente al di fuori del dominio di " REST " ;.

Se questi collegamenti sono in realtà solo <a> tag che fanno sì che il browser faccia una richiesta GET e poi facciano clic, allora non dovrebbero avere effetti collaterali perché GET dovrebbe essere, secondo le specifiche HTTP, sicuro e idempotente. Vedi i commenti precedenti sui ragni seguendo i link, ecc.

Ora se " collega " usato javascript per fare davvero un POST al server quando si fa clic, o qualche tipo di trucco come quello, quindi sono A-OK dal punto di vista di HTTP. Probabilmente più lavoro di quello che valgono, ma RESTful.

Ma c'è da considerare anche il design dell'interfaccia utente. Poiché in HTML di base senza CSS e javascript un collegamento è sempre un OTTENERE, dal 1994 gli utenti sono stati addestrati ad aspettarsi che tutto ciò che sembra sia sicuro e idempotente. Facendo qualcosa di diverso, i tuoi progettisti violano il principio della minima sorpresa. Sembra qualcosa su cui Jacob Nielsen ti appoggi.

Altri suggerimenti

Questo non ha molto a che fare con REST, ma provo a seguire questa semplice regola:

Hyperlinks are for navigation.
Buttons are for interaction.

Non importa se il tuo " stateful " le azioni sono collegamenti o pulsanti. Puoi avere un link che elimina / aggiunge, ecc. La coerenza è ciò che conta. Quindi, se vuoi che queste azioni siano pulsanti, va bene. Penso che le persone di talento CSS possano far sembrare i link come pulsanti. Potresti non aver bisogno di pulsanti html.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top