突兀與不顯眼的javascript之間的區別 - 用純英文顯示。簡潔感謝。簡短的例子也表示讚賞。突兀與不顯眼之間的區別javascript
回答
分離問題。您的HTML和CSS沒有綁定到您的JS代碼中。您的JS代碼不內聯到某個HTML元素。你的代碼沒有一個大功能(或者無功能)。你有簡短的簡潔功能。
模塊化。 這種情況發生在您正確分離問題時。例如,您的真棒畫布動畫不需要知道向量如何工作以繪製一個框。
不要殺人如果他們沒有安裝JavaScript,或者沒有運行最新的瀏覽器 - 盡你所能去優雅地降低體驗。
當你只需要做一些小事情時,不要建立垃圾山。人們無休止地通過重新選擇DOM元素來複雜化他們的代碼,在其中拋出語義HTML並拋出編號的ID,以及由於不瞭解文檔模型或其他技術的某些其他技術而發生的其他奇怪事情 - 因此他們依賴「魔術」抽象層將所有東西放慢到垃圾速度,並引入高山。
的標記沒有JavaScript是不顯眼:
<div id="informationHeader">Information</div>
突兀:
<div onclick="alert('obstrusive')">Information</div>
- HTML和JavaScript(定義在外部JavaScript文件在您的JavaScript)
- 優雅降級的分離(重要頁面的某些部分仍然可以在禁用JavaScript的情況下使用)。
對於一個冗長的解釋,結賬Wikipedia page關於這個問題。
使用內聯DOM 0處理程序時,頁面仍可以正常降級。 – 2011-12-05 21:57:28
@MattMcDonald:我不是說他們不能?但是,你打破了HTML和JavaScript分離的原則 – Matt
你的答案需要更清晰。 – 2011-12-05 21:59:39
要擴大Mike的答案:使用UJS行爲將在「稍後」添加。
<div id="info">Information</div>
... etc ...
// In an included JS file etc, jQueryish.
$(function() {
$("#info").click(function() { alert("unobtrusive!"); }
});
UJS可能也意味着溫和下降(我喜歡的那種),例如,另一種方式來獲得的#info
點擊功能,或許通過提供等效的鏈接。換句話說,如果沒有JavaScript,或者我正在使用屏幕閱讀器等,會發生什麼情況。
我認爲jQuery會對JavaScript產生影響。我寧願只在靜態HTML中看到那些事件,因爲它們將在動態生成的DOM中出現。 – austincheney
@austincheney這與jQuery沒有任何關係; UJS是框架中立的。 –
不顯眼 - 「不顯眼,不顯眼,不自信或沉默寡言。」 「具有或表現出強加於人的傾向,如將自己或他人的意見強加給他人。」「
管閒事 - ‘推力(某事)前或後的人,尤其是沒有正當理由或邀請’
所以,實行一個人的意見,在我看來,發言不顯眼的JavaScript的最重要的部分是那從用戶的角度來看它並不妨礙,也就是說,如果JavaScript被瀏覽器設置關閉,網站仍然可以工作。打開或不打開JavaScript,網站仍然可以被用戶訪問屏幕閱讀器,鍵盤和鼠標,以及其他輔助功能工具,可能(可能)該網站對這些用戶來說不會那麼「華麗」,但它仍然可以工作
如果您認爲在「漸進式增強」的術語中,您的網站的核心功能將適用於每個人,無論他們如何訪問它。然後,對於啓用了JavaScript和CSS的用戶(大多數用戶),您可以使用更多交互元素來增強它。另一個關鍵的「不顯眼」因素是「關注點分離」 - 程序員關心的事情,而不是用戶,但它可以幫助阻止事情的JavaScript方面阻礙用戶的體驗。從程序員的角度來看,避免內聯腳本傾向於使標記更漂亮,更容易維護。調試不是分散在一堆內聯事件處理程序中的腳本通常要容易得多。
- 1. Python:time.time()與time.clock()之間的顯着區別?
- 2. Javascript:顯式拋出錯誤對象與否之間的區別
- 3. 「或」與「||」之間的區別?
- 4. ~~與Math.floor之間的區別()
- 5. PAM與Metis分區之間的區別
- 6. 與別名之間的區別
- 7. C - 非突兀圖形庫?
- 8. DIV原樣與帶顯示的SPAN之間的區別:區域
- 9. Rails 3.1不顯眼的Javascript與Flot
- 10. 與ASP.NET MVC不顯眼的JavaScript驗證
- 11. 時間()與stime()之間的區別
- 12. 兩個日期與JavaScript中的時間戳之間的區別
- 13. 使javascript不顯眼
- 14. Javascript - 命名空間與封閉之間的區別?
- 15. javascript中的/ * * /和//之間的區別
- 16. 顯示屏無與顯示屏之間的區別
- 17. JavaScript數組之間的區別
- 18. Javascript + HTML - 「'和」之間的區別「
- 19. Javascript ES6。 ===和Object.is之間的區別
- 20. D3 javascript每行之間的區別
- 21. window []和eval()之間的區別 - Javascript
- 22. Javascript包裝方法之間的區別
- 23. javascript .childNodes和.children之間的區別
- 24. css/javascript選擇器之間的區別
- 25. ECMAScript6和JavaScript之間的區別
- 26. JavaScript中[] [[]]和[[]] []之間的區別?
- 27. Javascript「Math.sin」和WebGL「sin」之間的區別
- 28. Javascript - 函數聲明之間的區別
- 29. javascript構造函數之間的區別
- 30. JavaScript函數聲明之間的區別?
可能的重複[爲什麼在HTML中使用onClick()不好的做法?](http://stackoverflow.com/questions/5871640/why-is-using-onclick-in-html-a-bad-practice ) –
One(「obtrusive」)是一種將元素應用於行爲的舊式(DOM 0)。另一個(「不顯眼」)是由John Resig(jQuery的名氣)推動的一種風格。這兩個都是可以接受的 – 2011-12-05 22:00:14