2016-06-11 25 views
2

我想知道這一段實際上是什麼意思?內聯JS的缺點

它是從一個網站採取缺點約內嵌腳本

交通不便:當涉及到內嵌的JavaScript代碼,如在 上面的例子中,它適用於不具備的元素任何 內置後備交互處理

鏈接:https://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/

+0

請提供全面參考或提及的例子 – ReZa

+0

@hero提供藏漢 –

+0

鏈路https://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such -a-bad-thing/ – Hero

回答

2
<div style="width: 800px; margin: 1em auto; font: bold 1em/1.2 Verdana, Arial, Helvetica, sans-serif"> 
    <div style="float: left; width: 400px; padding: 1em 2em; font-size: 0.9em"> 
     <span id="get-shit" onclick="callSomeFunction()">News</span> 
    </div> 
</div> 

他說,在上面的函數,如果callSomeFunction,重定向頁面以一些其他的網頁...但由於某種原因(由於網絡錯誤無法加載)callSomeFunction未在頁面加載,那麼這將是一個死鏈接,將什麼也不做,所以而是應該以這樣的方式,如果沒有的JavaScript也應該合理工作實施...

即使瀏覽器提供了一個配置爲禁用javascript的用戶,所以在上面的鏈接這種情況下,不會做任何事

因此,他說,通過使用下面的代碼,

<link rel="stylesheet" href="css/base.css" type="text/css" media="screen"> 
<script type="text/javascript" src="js/base.js"></script> 

<div id="container"> 
    <div id="navigation"> 
     <a id="get-news" href="news-proper-url">News</a> 
    </div> 
</div> 


/* 
    CSS code, in separate file (base.css) 
*/ 
#container { 
    width: 800px; 
    margin: 1em auto: 
    font: bold 1em/1.2 Verdana, Arial, Helvetica, sans-serif; 
} 

#navigation { 
    float: left; 
    width: 400px; 
    padding: 1em 2em; 
    font-size: 0.9em; 
} 

/* 
    JavaScript code, in separate file (base.js) 
*/ 
window.onload = function() { 
    document.getElementById("get-news").onclick = function() { 
     // Get news through AJAX 
    }; 
} 

這裏,如果未加載JavaScript,然後再點擊「新聞」將爲您重定向到新的頁面,

如果JavaScript加載,然後他會送一個AJAX請求,並在同一個頁面加載新聞

這些都對JavaScript的不可用的情況下,在同一個頁面

不每個人都有的JavaScript目前上市?

第一:不,他們沒有。其次:有些人故意關閉它(對於 實例,NoScript Firefox擴展至今已有3100萬次下載 )。第三,通常不是最終用戶,但是他們不控制的外部環境,這會導致某些 程度或其他,導致JavaScript不可用。這些因素 是:

防病毒程序和防火牆在其 JavaScript安全判斷中有點過於苛刻。公司代理服務器過濾出 代碼(例如,閱讀關於AJAX和 可訪問性的重要教訓)。其他公司互聯網訪問設置阻止 正確的JavaScript執行。

+0

感謝您的幫助! – Hero

+0

@Hero:很高興幫助.. –

2

舉例在逐步增強

<a href="important-message.html" onclick="alert('Important message'); return false;">Click me</a> 

這裏,如果JavaScript失敗,那麼鏈接將正常工作,重要的消息通過從服務器加載新頁面顯示。

(如JavaScript是成功的點擊默認行爲,將被取消,該鏈接不會跟隨)。

內置的鏈接的交互處理程序「去URL」。通過在上分層JavaScript ,我們可以使用它作爲後備。

例無漸進增強

<button type="button" onclick="alert('Important message');">Click me</a> 

在這裏,如果JavaScript的失敗,則什麼也不會發生的。這只是一個不做任何事情的按鈕。


這實際上並沒有任何關係,JavaScript與內聯。從腳本元素加載的現代JavaScript會發生同樣的問題,並且會與addEventListener綁定。