天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

不唐突的JavaScript的七條準(zhǔn)則

英文原文:http://icant.co.uk/articles/seven-rules-of-unobtrusive-Javascript/

1.不要做任何假設(shè)(JavaScript是一個(gè)不可靠的助手)

    * 不要假設(shè)JavaScript是可用的,你最好認(rèn)為它很有可能是不可用的,而不是直接依賴于它。
    * 在你經(jīng)過測試確認(rèn)一些方法和屬性可以使用之前,不要假設(shè)瀏覽器支持它們。
    * 不要假設(shè)HTML代碼如你想象的那樣正確,每次都要進(jìn)行檢查,并且當(dāng)其不可用的時(shí)候就什么也不要做。
    * 讓JavaScript的功能獨(dú)立于輸入設(shè)備
    * 要記住其他的腳本可能會影響你的JavaScript的功能,所以要保證你的腳本的作用域盡可能地安全。

在開始設(shè)計(jì)你的腳本之前,要考慮的第一件事情就是檢查一下你要為其編寫腳本的HTML代碼,看看有什么東西可以幫助你達(dá)到目的。

2.找出鉤子和節(jié)點(diǎn)關(guān)系(HTML是腳本的基石)

在開始編寫腳本之前,要先看一下你要為之編寫JavaScript的HTML。如果HTML是未經(jīng)組織的或者未知的,那么你幾乎不可能有一個(gè)好的腳本編寫方案——很可能就會出現(xiàn)下面的情況:要么是會用JavaScript創(chuàng)建太多標(biāo)記,要么就是應(yīng)用太依賴于JavaScript。

在HTML中有一些東西需要考慮,那就是鉤子和節(jié)點(diǎn)關(guān)系。

<1>.HTML 鉤子

HTML最初的和最重要的鉤子就是ID,而且ID可以通過最快的DOM方法——getElementById訪問到。如果在一個(gè)有效的HTML文檔中所有的ID都是獨(dú)一無二的話(在IE中關(guān)于name 和 ID有一個(gè)bug,不過有些好的類庫解決了這個(gè)問題),使用ID就是安全可靠的,并且易于測試,而且如果直接用name來作為對象進(jìn)行操作,在FF下是無效的,會報(bào)此對象未定義的錯(cuò)誤。

其他一些鉤子就是是HTML元素和CSS類,HTML元素可以通過getElementsByTagName方法訪問,而在多數(shù)瀏覽器中都還不能通過原生的DOM方法來訪問CSS類。不過,有很多外部類庫提供了可以訪問CSS類名(類似于 getElementsByClassName) 的方法。

<2>.HTML 節(jié)點(diǎn)關(guān)系

關(guān)于HTML的另外比較有意思的一點(diǎn)就是標(biāo)記之間的關(guān)系,思考下面的問題:

    * 要怎樣才可以最容易地、通過最少的DOM遍歷來到達(dá)目標(biāo)節(jié)點(diǎn)?
    * 通過修改什么標(biāo)記,可以盡可能多地訪問到需要修改的子節(jié)點(diǎn)?
    * 一個(gè)給定的元素有什么屬性或信息可以用來到達(dá)另外一個(gè)元素?

遍歷DOM很耗資源而且速度很慢,這就是為什么要盡量使用瀏覽器中已經(jīng)在使用的技術(shù)來做這件事情。

3.把遍歷交給專家來做 (CSS,更快地遍歷DOM)

有關(guān)DOM的腳本和使用方法或?qū)傩裕╣etElementsByTagName, nextSibling, previousSibling,parentNode以及其它)來遍歷DOM似乎迷惑了很多人,這點(diǎn)很有意思。而有趣的是,我們其實(shí)早已經(jīng)通過另外一種技術(shù)—— CSS——做了這些事情。

CSS 是這樣一種技術(shù),它使用CSS選擇器,通過遍歷DOM來訪問目標(biāo)元素并改變它們的視覺屬性。一段復(fù)雜的使用DOM的JavaScript可以用一個(gè)CSS選擇器取代:
JS代碼

var n = document.getElementById(’nav’);  
if(n){
var as = n.getElementsByTagName(’a');
if(as.length > 0){
for(var i=0;as[i];i++){
as[i].style.color = ‘#369′;
as[i].style.textDecoration = ‘none’;
}
}
}

/* 下面的代碼與上面功能一樣 */

#nav a{
color:#369;
text-decoration:none;
}

it知識庫不唐突的JavaScript的七條準(zhǔn)則,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91偷偷久久做嫩草电影院 | 亚洲免费观看在线视频 | 午夜dj影院视频观看 | 国产精品观看视频免费完整版 | 日日摸天天添天天添无码蜜臀 | 免费毛片试看 | 欧美亚洲天堂网 | 国产97精品久久久天天A片 | 精品国产在线亚洲欧美 | 精品国产乱码久久久久久乱码 | 2018三级网站免费观看 | 国产人妻人伦精品A区 | 精品区2区3区4区产品乱码9 | 色一欲一性一乱一区二区三区 | 99国产热视频在线观看 | 我的漂亮朋友在线观看全集免费 | 手机看片国产免费 | 国产在线观看不卡 | av56788成 人影院 | 日韩欧美中文字幕在线二视频 | 一本道久在线综合色色 | 爆乳啪啪无码成人二区亚洲欧美 | 国产毛多水多高潮高清 | 亚洲欧洲日本无在线码播放 | 国产第81页| 2019久久这里只精品热在线观看 | 黄瓜视频苹果直接安装 | 97影院理论午夜伦不卡偷 | 国产伦精品一区二区三区免费观看 | 熟女人妻-蜜臀AV-首页 | 成人天堂婷婷青青视频在线观看 | 亚洲欧洲日产国码久在线 | 邻居的阿2中文字版电影 | 久久久久久久免费 | 麻花豆传媒剧国产免费mv观看 | 99热在线免费播放 | 亚洲 自拍 偷拍 另类综合图区 | 91天堂国产在线 在线播放 | 久久6699精品国产人妻 | 亚洲视频在线免费观看 | 美女动态图真人后进式 |