Есть ли преимущество использования кнопки вместо ссылки? - PullRequest
1 голос
/ 17 октября 2011

Я нахожусь в процессе создания ссылок для голосования (большие пальцы вверх, большие пальцы вниз, избранные и т. Д.).

Я использую маршруты RESTful rails, и мне удобно использовать link_to практически для всего,включая не-GET запросы.link_to проще в стиле, чем button_to, так как button_to содержит целую форму с вводом типа submit, который всегда казался более тяжелым, чем просто link_to с: method =>: delete или: method =>: post.Единственный раз, когда я использую форму, это когда мне нужно собрать данные от пользователя, и я никогда не использую button_to.

Я пошел на youtube, чтобы посмотреть, как они оформляют свои кнопки для голосования, и они на самом деле используют кнопки.

 <button onclick=";return false;" title="I dislike this" type="button" class="end yt-uix-tooltip-reverse yt-uix-button yt-uix-tooltip yt-uix-button-empty" id="watch-unlike" data-button-action="yt.www.watch.actions.unlike" role="button" data-tooltip-text="I dislike this">
     <img class="yt-uix-button-icon yt-uix-button-icon-watch-unlike" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="">
 </button>

Из этого фрагмента видно, что они используют кнопку просто как контейнер для спрайта изображения.Кнопка не окружена тегами формы, поэтому я предполагаю, что есть ненавязчивый js, который запускает HTTP POST в другом месте.

Youtube принадлежит Google, поэтому я думаю, что их работа должна быть лучшей практикой, да?

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

Итак, мой вопрос, каково техническое преимущество (если таковое имеется) в том, чтобы сделать это способом YouTube?

1 Ответ

1 голос
/ 17 октября 2011

Это все о , изящно деградирующем

Простая ссылка не отправит форму без javascript.

(Хорошо, это еще не все, это также семантика,например, совместимость для читателей страниц для людей с ограниченными возможностями и т.д.)

...