Должны ли ссылки когда-либо иметь побочные эффекты с отслеживанием состояния?

StackOverflow https://stackoverflow.com/questions/1403220

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Ваше здоровье.Мюррей.

Это было полезно?

Решение

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

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

Теперь, если "ссылки" использовали javascript, чтобы действительно отправлять сообщение на сервер при нажатии, или какой-то подобный трюк, то с точки зрения HTTP они в порядке.Вероятно, больше работы, чем они того стоят, но успокаивают.

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

Другие советы

На самом деле это не имеет большого отношения к REST, но я стараюсь следовать этому простому правилу:

Hyperlinks are for navigation.
Buttons are for interaction.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top