2009-09-10 4 views
3

Я сделал жизнь трудной для разработчиков HTML/CSS, внеся любое взаимодействие, которое имеет побочный эффект в кнопку, а НЕ гиперссылку.Должны ли ссылки когда-либо иметь побочные эффекты с сохранением состояния?

Например, я изменил «Очистить корзину» на торговом сайте по ссылке на кнопку. Исходя из предположения, что любое действие, которое имеет побочный эффект, должно быть кнопкой, а не гиперссылкой. (даже если паук или робот никогда не дойдут до этого момента) Как это относится к REST?

Лучший ответ будет иметь веские причины, по которым я могу использовать то, почему я затрудняю работу для парней HTML/CSS, или почему я ошибаюсь :-), ... возможно, я являюсь пуристом но по какой-то причине?

Примечание: Я не прочь поставить ajax Функциональность, которая имеет определенные побочные эффекты при гиперссылке или даже при событии с измененным выбором.

Cheers. Мюррей.

+0

@Licky хорошего момент повторного Аякс: Убедитесь, что Аякс использует POST (при выполнении обновления). – Myster

ответ

4

Я думаю, что вы поступили правильно, но оправдывая это, вероятно, вне домена «ОТДЫХ».

Если эти ссылки действительно являются просто <a> тегами, которые приводят к тому, что браузер делает запрос GET, а затем щелкает, то у них не должно быть никаких побочных эффектов, потому что предполагается, что GET соответствует спецификации HTTP, безопасной и идемпотентной. См. Более ранние комментарии о пауках по ссылкам и т. Д.

Теперь, если «ссылки» использовали javascript, чтобы действительно делать POST на сервере при нажатии или какой-то трюк, то они являются A-OK из HTTP точка зрения. Вероятно, больше работы, чем они стоят, но RESTful.

Но есть и дизайн пользовательского интерфейса. Потому что в базовом HTML без CSS и javascript ссылка всегда является GET, пользователи с 1994 года прошли обучение, чтобы ожидать чего-то, что выглядит как гиперссылка, чтобы быть безопасной и идемпотентной. Делая что-то другое, ваши дизайнеры нарушают принцип наименьшего удивления. Это похоже на то, что Джейкоб Нильсен поддержит вас.

1

На самом деле не имеет значения, действуют ли ваши действия с состоянием - это ссылки или кнопки. У вас может быть ссылка, которая удаляет/добавляет и т. Д. Консистенция важна. Поэтому, если вы хотите, чтобы эти действия были кнопками, это нормально. Я думаю, что талантливые пользователи CSS могут сделать ссылки похожими на кнопки. Возможно, вам не нужны кнопки html.

+1

Я не согласен в случаях, когда паук может получить доступ к ссылке, вы можете увидеть очевидную проблему. – Myster

+0

Хороший вопрос для рассмотрения. Вы можете использовать файл robots.txt, никакие пауки не будут выполнять действие Urls. –

+1

Если бот не глючит или несовместим. Если вы вызываете побочные эффекты с сохранением состояния из запросов GET, то * вы * несовместимы, а когда-нибудь он вас укусит. –

2

Это действительно не имеет много общего с REST, но я стараюсь следовать этому простому правилу:

Hyperlinks are for navigation. 
Buttons are for interaction. 
+0

На самом деле мы до сих пор не знаем, что такое гиперссылки. Например, спецификация HTML4 говорит о том, что элементы FORM создают гиперссылки, когда мы нажимаем кнопку отправки ... – inf3rno

 Смежные вопросы

  • Нет связанных вопросов^_^