青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

f(sixleaves) = sixleaves

重劍無鋒 大巧不工

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  95 隨筆 :: 0 文章 :: 7 評(píng)論 :: 0 Trackbacks
今天完成了圖片庫的改進(jìn),不得寫下關(guān)于這個(gè)的深切感觸,獲得的寶貴經(jīng)驗(yàn)!。不羅嗦直接看先看代碼
1.平穩(wěn)退化
    要支持平穩(wěn)退化,也就是在瀏覽器禁用js時(shí),不會(huì)造成無法瀏覽,知識(shí)用戶體驗(yàn)變差了而已,功能還是實(shí)現(xiàn)了的。此時(shí)就不能使用javascript偽協(xié)議加href屬性來解決。如下。
2.分離js
    分離js的關(guān)鍵技術(shù)就是要結(jié)合HTML生命周期,和window對(duì)象的onload方法以及元素對(duì)象擁有事件函數(shù)進(jìn)行相應(yīng)的自定義函數(shù)綁定。
3.兼容性(對(duì)象檢查技術(shù)、其實(shí)用來確定代碼錯(cuò)誤位置也很好用)
4.優(yōu)化代碼(使用特定壓縮工具,壓縮js代碼)
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>Image Gallery</title>
 6     </head>
 7     <body>
 8         <h1>Snapshots</h1>
 9         <ul id = "imagegallery">
10             <li>
11                 <href="images/fireworks.jpg" title="A fireworks display">
12                 Fireworks
13                 </a>
14             </li>
15             <li>
16                 <href="images/coffee.jpg" title="A cup of black coffee">
17                 Coffee
18                 </a>
19             </li>
20             <li>
21                 <href="images/rose.jpg" title="A red. red rose">
22                 Rose
23                 </a>
24             </li>
25             <li>
26                 <href="images/bigben.jpg" title="The famous clock">
27                 Big Ben
28                 </a>
29             </li>
30         </ul>
31         <img id="placeholder" src="images/placeholder.jpg" alt="my image gallery" />
32         <id="desp">Choose an Image</p>
33         <script type="text/javascript" src="./scripts/showPic.js">
34         </script>
35     </body>
36 </html>
g 1 function showPic(whichPic) {
 2     alert("showPic");
 3     var source = whichPic.getAttribute("href");
 4     var placeholder = document.getElementById("placeholder");
 5     placeholder.setAttribute("src",source);
 6     var text = whichPic.getAttribute("title");
 7     var txtNode = document.getElementById("desp").firstChild;
 8     txtNode.nodeValue = text;
 9     return false;
10         /*
11         經(jīng)驗(yàn)總結(jié):
12         1.由于js是動(dòng)態(tài)語言,所以存在一個(gè)很嚴(yán)重的問題,
13         那就是你自己取的變量名稱時(shí),盡可能的采用駱駝峰寫法,
14         并且最后借助好的編輯器,有自動(dòng)補(bǔ)全功能的編輯器,一面
15         拼寫錯(cuò)誤,這種錯(cuò)誤低級(jí),而且查找起來十分困難。
16 
17         2.如果站點(diǎn)用到多個(gè)js文件,因該把它合并到一個(gè)文件中。以減少請(qǐng)求次數(shù),提高性能。
18 
19     */
20 }
21 
22 function addLoadEvent(func) {
23     var oldLoad = window.onload;
24     if(typeof oldLoad == 'function') {
25         window.onload = function() {
26             oldLoad();
27             func();
28         }
29     }else {
30         window.onload = func;
31     }
32 }
33 
34 function prepareGallery() {
35     //使用對(duì)象檢查技術(shù),檢查所要用到的方法是否可以用。
36     //在js dom中,一切都可視為對(duì)象,包括方法,
37     //所以說這是對(duì)象檢測技術(shù),檢測這個(gè)對(duì)象存不存在
38     //下面主要是檢查瀏覽器是否支持這些DOM接口
39     //alert("jsss");
40     
41     if(!document.getElementsByTagName) {alert("tag");return false};
42     if(!document.getElementById) return false;
43     if(!document.getElementById("imagegallery")) return false;
44     var gl = document.getElementById("imagegallery");
45     var links = gl.getElementsByTagName("a");
46     //alert(typeof links);
47     for(var i = 0; i < links.length; i++) {
48         links[i].onclick = function() {
49             return showPic(this);
50         }
51     }
52     //alert("end");
53 }
54 addLoadEvent(prepareGallery);
55 /*
56 這里介紹下HTML的聲明周期,當(dāng)HTML文檔完成加載時(shí),此時(shí)DOM節(jié)點(diǎn)樹立即構(gòu)建起來,此時(shí)會(huì)出發(fā)window對(duì)象的onload事件
57 所以我們?cè)谶@個(gè)時(shí)候執(zhí)行prepareGallery()函數(shù)進(jìn)行,相應(yīng)節(jié)點(diǎn)對(duì)象上的事件綁定是最合適的,因?yàn)榇藭r(shí)我們能確保整顆節(jié)點(diǎn)
58 樹已經(jīng)構(gòu)建完畢,我們綁定只要代碼不出錯(cuò),就肯定不會(huì)出錯(cuò)。要是不用這個(gè)事件來處理。而只是通過srcipt標(biāo)簽引入,不管是放在
59 head區(qū)域還是body結(jié)束之前,都無法保證此時(shí)DOM節(jié)點(diǎn)樹已經(jīng)構(gòu)建完成,所以要實(shí)現(xiàn)js分離我們一定要用到HTML的聲明周期中的加載完成
60 ,構(gòu)建完成DOM節(jié)點(diǎn)樹而觸發(fā)的window.onload事件,有人會(huì)問此時(shí)document對(duì)象是否存在,在BOM中,window對(duì)象含有一個(gè)成員變量,
61 就是document,所以有window對(duì)象,就有document對(duì)象。
62 */
63 
g
代碼中的注釋已經(jīng)詳細(xì)說明了代碼是要來干什么的。其實(shí)今天改進(jìn)版本的圖片庫,本來是想學(xué)習(xí)下HTML生命周期和DOM節(jié)點(diǎn)樹的關(guān)系,以及和window.onload的關(guān)聯(lián)。還有學(xué)習(xí)怎么平穩(wěn)退化。結(jié)果卡殼,卡了半天,差錯(cuò),差了半天,起初是其中一個(gè)字符編碼有問題,運(yùn)行結(jié)果不對(duì)。找了半天才找到。
這里總結(jié)寫js的快速調(diào)試辦法,當(dāng)然有點(diǎn)麻煩。
我們?cè)趯慾s時(shí),如果在定位元素時(shí),我們應(yīng)該分步定位,步步縮進(jìn),在定位時(shí),利用對(duì)象檢查技術(shù),我們可以很輕易找到我們出錯(cuò)的地方。本來這項(xiàng)技術(shù)是用來保證兼容性的,但是我們還可以用它來定位錯(cuò)誤!,在沒有該對(duì)象的時(shí)候使用alert進(jìn)行提示。在調(diào)試時(shí),我們就可以快速定位錯(cuò)誤的位置,因?yàn)榇蠖鄶?shù)時(shí)候我們寫的代碼在我們理解的邏輯上是不會(huì)有錯(cuò)的,但是我們有時(shí)可能為定位某個(gè)元素,給其加了給id,但是定位時(shí)卻拼錯(cuò)了,這時(shí)我們通過對(duì)象檢查技術(shù),就可以很快找到錯(cuò)誤的地方。
2014.07.11
02:44
于福州
posted on 2014-07-11 02:41 swp 閱讀(165) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Web
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲九九爱视频| 国产精品区免费视频| 国产欧美日韩在线视频| 久久超碰97中文字幕| 欧美亚洲视频在线看网址| 一色屋精品视频免费看| 亚洲破处大片| 国产精品v一区二区三区| 欧美一区高清| 美女爽到呻吟久久久久| 亚洲欧美日韩国产中文在线| 久久色中文字幕| 亚洲一区二区三区四区五区黄| 亚洲综合视频一区| 亚洲肉体裸体xxxx137| 亚洲一二三四久久| 亚洲日本中文字幕区 | 久久亚洲精品网站| 老司机一区二区| 欧美日韩另类一区| 亚洲国产日韩在线| 亚洲欧美综合精品久久成人| 亚洲欧洲午夜| 久久精品最新地址| 午夜一级久久| 欧美精品福利在线| 久久漫画官网| 国产精品一区久久久久| 亚洲国产婷婷| 影音先锋久久| 欧美中文字幕在线播放| 亚洲免费一级电影| 欧美日韩精品国产| 91久久国产综合久久| 影音先锋欧美精品| 欧美在线免费观看视频| 欧美专区福利在线| 国产目拍亚洲精品99久久精品| 99在线|亚洲一区二区| 亚洲精品一区在线| 免费在线看成人av| 欧美国产日本在线| 亚洲国产日韩一区| 欧美成人午夜激情视频| 欧美黄色视屏| 亚洲欧洲美洲综合色网| 麻豆精品在线播放| 欧美高清视频免费观看| 亚洲国产精品999| 久久久综合视频| 美玉足脚交一区二区三区图片| 韩国av一区二区三区| 久久久久se| 牛牛精品成人免费视频| 亚洲二区视频在线| 欧美第一黄网免费网站| 亚洲欧洲日本国产| 亚洲一区二区三区中文字幕在线 | 亚洲欧美成人在线| 欧美日韩免费精品| 亚洲最黄网站| 欧美亚洲日本一区| 国产综合精品| 麻豆免费精品视频| 亚洲精品乱码久久久久久黑人| 亚洲调教视频在线观看| 国产精品视频yy9099| 亚洲免费视频网站| 欧美三级中文字幕在线观看| 一本到12不卡视频在线dvd| 亚洲午夜成aⅴ人片| 国产农村妇女毛片精品久久麻豆 | 日韩亚洲成人av在线| 欧美精品国产| 亚洲一区精品电影| 久久成人人人人精品欧| 激情久久久久久久久久久久久久久久| 久久久久久夜精品精品免费| 欧美v日韩v国产v| 亚洲免费观看| 亚洲九九精品| 午夜精品久久久久久99热| 欧美成年人网| 日韩一级片网址| 久久久www成人免费无遮挡大片 | 在线一区二区三区做爰视频网站 | 欧美久久在线| 亚洲欧美国产日韩天堂区| 久久综合免费视频影院| 99热这里只有成人精品国产| 国产精品入口麻豆原神| 久久综合狠狠| 亚洲视频在线观看一区| 久久久久久亚洲精品杨幂换脸| 亚洲欧洲另类国产综合| 国产美女精品在线| 欧美精品免费视频| 久久精品国产视频| 亚洲视频免费| 欧美激情乱人伦| 久久国产免费| 一区二区三区四区五区视频| 黄网站色欧美视频| 国产精品三区www17con| 欧美久久视频| 欧美电影资源| 久久精品二区三区| 亚洲社区在线观看| 亚洲国产欧美一区二区三区久久| 久久精品日韩| 性色av一区二区怡红| 亚洲免费观看高清完整版在线观看| 亚洲性感美女99在线| 欧美成人午夜免费视在线看片| 欧美在线看片| 亚洲天堂激情| 99国产精品久久久久老师| 1024成人| 韩日在线一区| 国产拍揄自揄精品视频麻豆| 欧美视频在线观看免费| 欧美日韩成人激情| 欧美日本不卡高清| 欧美精品福利在线| 欧美激情精品久久久| 另类综合日韩欧美亚洲| 久久婷婷丁香| 久久夜色撩人精品| 久久婷婷麻豆| 免费观看日韩| 欧美福利一区二区三区| 欧美jizz19hd性欧美| 久久综合精品一区| 蜜臀a∨国产成人精品 | 久久久人成影片一区二区三区| 午夜国产不卡在线观看视频| 亚洲一卡久久| 亚洲欧美成人| 性一交一乱一区二区洋洋av| 午夜视频在线观看一区二区| 亚洲欧美制服中文字幕| 亚洲一区在线免费| 午夜精品理论片| 欧美一级午夜免费电影| 欧美一区二区三区视频在线观看| 亚洲欧美日韩国产精品| 性欧美xxxx视频在线观看| 欧美在线视频a| 久久综合伊人77777| 免费一级欧美片在线观看| 欧美激情四色 | 老牛影视一区二区三区| 亚洲一区二区成人| 亚洲愉拍自拍另类高清精品| 亚洲小视频在线| 亚洲欧美视频| 午夜欧美大片免费观看| 欧美一区二区精品久久911| 欧美一二三视频| 久久精品视频一| 麻豆精品网站| 亚洲激情网址| 99pao成人国产永久免费视频| 一区二区激情| 亚洲一区二区三区在线| 亚洲欧美中文在线视频| 久久久九九九九| 欧美激情中文不卡| 国产精品久久久对白| 国产亚洲a∨片在线观看| 亚洲成人在线网| 亚洲视频二区| 久久成人免费视频| 欧美高清自拍一区| 亚洲少妇自拍| 美日韩精品视频| 欧美系列电影免费观看| 国产一区二区三区久久悠悠色av | 亚洲高清一区二| 日韩亚洲欧美综合| 欧美一区二区三区四区夜夜大片| 久久一区欧美| 欧美视频日韩视频| 国语自产精品视频在线看| 亚洲美女啪啪| 久久久综合网站| 亚洲精品一区二| 欧美资源在线观看| 欧美另类videos死尸| 韩国av一区二区三区| 一区二区日韩免费看| 久久婷婷成人综合色| 亚洲精品美女| 久久国产一区二区| 国产精品hd| 亚洲精品免费观看| 欧美在线视频播放| 亚洲九九爱视频| 欧美jizzhd精品欧美喷水| 国产日韩精品一区|