Должны ли ссылки иметь побочные эффекты? - PullRequest
3 голосов
/ 10 сентября 2009

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

Например, я изменил «Очистить корзину» на сайте покупок со ссылки на кнопку. При условии, что любое действие, которое имеет побочный эффект, должно быть кнопкой, а не гиперссылкой. (даже если паук или робот никогда не дойдут до этой точки) Какое это имеет отношение к ОТДЫХУ?

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

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

Приветствия. Мюррей.

Ответы [ 3 ]

4 голосов
/ 10 сентября 2009

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

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

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

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

2 голосов
/ 10 сентября 2009

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

Hyperlinks are for navigation.
Buttons are for interaction.
1 голос
/ 10 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...