javascript學習總結之js提示,js提示

來源:互聯網
上載者:User

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提示,希望大家喜歡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.