javascript學習總結之js提示,js提示
1 假如瀏覽器不支援JavaScript怎麼辦?
a.為什麼瀏覽器會不支援?大部分瀏覽器都有禁用指令碼的功能,例如chrome。
b.在js被禁用的情況下要保證網頁仍能實現它的核心功能(關鍵的使用者需求)
例子:在一個新視窗裡開啟連結,可以使用BOM的open()方法
function popUp(winURL) { window.open(winURL, "popup", "width=,height="); }
具體的js實現有以下幾個方案:
方案一:使用javascript偽協議:
<a href="javascript:popUp('http://www.example.com');return false;">Example</a>
方案二:使用內嵌的事件處理函數:
<a href="#" onclick="popUp('http://www.example.com');return false;"></a>
以上兩種種實現方案,在js被禁用時,“在一個新視窗裡開啟連結”這個需求就無法滿足了。所以,不能為了單純使用js而濫用js。下面這個實現方案就為js預留出了退路,即所謂平穩退化(留好js被禁後的退路)
方案三:平穩退化<a href="http://www.example.com" onclick="popUp(this.href;return false;)">
2 如何將網頁的結構、內容與JavaScript指令碼的動作分離開?為什麼要分離開?
a.分工明確,各幹各的,然後才是協作:
網頁結構、內容-由html來做、網頁的樣式-由CSS來做、網頁的行為-由JavaScript來做
b.分離js代碼其實很簡單,js代碼不要求事件必須在html中處理,可以在外部js檔案裡將一個事件添加到html文檔中的某個元素上。例如:
window.onload = paperLinks function paperLinks() { var links = document.getElementsByTagName("a"); for (var i=; i<links.length;i++){ if (links[i].getAttribute == "popup") { linnks[i].onclick = function() { popUp(this.getAttribute("href")); return false; } } } }
3 瀏覽器的相容性問題
新老要通吃,尤其要注意老的,即向後相容。不同的瀏覽器對js的支援程度不一樣,比如
document.getElementsByClassName(classname)IE6就不支援,加一個檢查語句就可以檢查相容性問題:if(!document.getElementsByClassName) return false;
4 效能考慮
為什麼要考慮指令碼執行的效能?效能是永遠要考慮的問題,這涉及到你編寫的網頁能否順利的載入。
如何保證指令碼執行的效能是最優的?
a.盡量少訪問dom和少使用標記,例如:少用迴圈遍曆
var links = document.getElementsByTagName("a"); if (links.length > ) { for (var i=; i<links.length; i++) { //...... } }
就要比下面的代碼效能要好
if (document.getElementsByTagName("a").length > ) { var links = document.getElementsByTagName("a"); for (var i=; i<links.length; i++) { //...... } }
b.合并指令碼(js代碼),減少頁面載入時發送的請求數量;將<script>標籤放置於文檔末尾,在</body>結束之前,這樣可以讓頁面載入的快些,且不影響js的載入。
c.壓縮指令碼,將js代碼中不必要的空格、注釋刪除,甚至可以將變數名簡化。可以準備兩個版本的js:一個是工作版本,用於修改代碼和注釋,另一個為精簡版本,則用於發布。
javascript對象
以上內容就是本文給大家介紹javascript學習總結之js提示,希望大家喜歡。