2011-10-17 21 views
1

我正在創建投票鏈接(豎起大拇指,拇指向下,最喜歡的等)。有使用按鈕而不是鏈接的優勢嗎?

我一直在使用REST風格的rails路線,我很喜歡使用link_to來處理所有的事情,包括沒有GET請求。 link_to比button_to更容易風格,因爲button_to帶有一個輸入類型爲submit的整個表單,這通常比link_to with: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> 

從這段代碼看起來他們只是將按鈕用作圖像精靈的容器。該按鈕不包含form標籤,所以我猜測有不引人注意的js在別處觸發HTTP POST。

Youtube歸谷歌所有,所以我想他們這樣做的方式一定是最好的做法,是嗎?

沒有railsy辦法,我知道做一個按鈕而不形式的,短的按鈕標籤直接寫入的,它總是讓我三思而後行,當我即將做一些軌道已經不給我。

所以我的問題是,這樣做的YouTube的技術優勢(如果有的話)?

回答

1

它的所有degrading gracefully

簡單的鏈接將不無JavaScript的發佈形式。

(好吧這不是所有關於那個,它也語義,例如,對於頁面閱讀器的兼容性殘疾人等)

+0

嗯......但將YouTube上能夠適度地降低,因爲沒有形式的無後JS? (他們的按鈕什麼都不會做)然而,Point指出了語義:即使沒有綁定工作表單的功能,按鈕也會讓你更加了解你正在改變某個事物的狀態,而鏈接不應該這樣做。但是,那麼我應該替換我的link_to:method =>:post和:method =>:delete with button_to然後?頁面膨脹怎麼樣? – Homan

+0

那是正確的。但是,在

+0

每當我需要更改某件事情的狀態時,我最終都會將button_to替換爲button_to。原來,我不得不升級到Rails 3.1,因爲在button_to上remote => true存在ajax錯誤。 – Homan

相關問題