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

f(sixleaves) = sixleaves

重劍無鋒 大巧不工

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
今天完成了圖片庫的改進,不得寫下關于這個的深切感觸,獲得的寶貴經驗!。不羅嗦直接看先看代碼
1.平穩退化
    要支持平穩退化,也就是在瀏覽器禁用js時,不會造成無法瀏覽,知識用戶體驗變差了而已,功能還是實現了的。此時就不能使用javascript偽協議加href屬性來解決。如下。
2.分離js
    分離js的關鍵技術就是要結合HTML生命周期,和window對象的onload方法以及元素對象擁有事件函數進行相應的自定義函數綁定。
3.兼容性(對象檢查技術、其實用來確定代碼錯誤位置也很好用)
4.優化代碼(使用特定壓縮工具,壓縮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         經驗總結:
12         1.由于js是動態語言,所以存在一個很嚴重的問題,
13         那就是你自己取的變量名稱時,盡可能的采用駱駝峰寫法,
14         并且最后借助好的編輯器,有自動補全功能的編輯器,一面
15         拼寫錯誤,這種錯誤低級,而且查找起來十分困難。
16 
17         2.如果站點用到多個js文件,因該把它合并到一個文件中。以減少請求次數,提高性能。
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     //使用對象檢查技術,檢查所要用到的方法是否可以用。
36     //在js dom中,一切都可視為對象,包括方法,
37     //所以說這是對象檢測技術,檢測這個對象存不存在
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的聲明周期,當HTML文檔完成加載時,此時DOM節點樹立即構建起來,此時會出發window對象的onload事件
57 所以我們在這個時候執行prepareGallery()函數進行,相應節點對象上的事件綁定是最合適的,因為此時我們能確保整顆節點
58 樹已經構建完畢,我們綁定只要代碼不出錯,就肯定不會出錯。要是不用這個事件來處理。而只是通過srcipt標簽引入,不管是放在
59 head區域還是body結束之前,都無法保證此時DOM節點樹已經構建完成,所以要實現js分離我們一定要用到HTML的聲明周期中的加載完成
60 ,構建完成DOM節點樹而觸發的window.onload事件,有人會問此時document對象是否存在,在BOM中,window對象含有一個成員變量,
61 就是document,所以有window對象,就有document對象。
62 */
63 
g
代碼中的注釋已經詳細說明了代碼是要來干什么的。其實今天改進版本的圖片庫,本來是想學習下HTML生命周期和DOM節點樹的關系,以及和window.onload的關聯。還有學習怎么平穩退化。結果卡殼,卡了半天,差錯,差了半天,起初是其中一個字符編碼有問題,運行結果不對。找了半天才找到。
這里總結寫js的快速調試辦法,當然有點麻煩。
我們在寫js時,如果在定位元素時,我們應該分步定位,步步縮進,在定位時,利用對象檢查技術,我們可以很輕易找到我們出錯的地方。本來這項技術是用來保證兼容性的,但是我們還可以用它來定位錯誤!,在沒有該對象的時候使用alert進行提示。在調試時,我們就可以快速定位錯誤的位置,因為大多數時候我們寫的代碼在我們理解的邏輯上是不會有錯的,但是我們有時可能為定位某個元素,給其加了給id,但是定位時卻拼錯了,這時我們通過對象檢查技術,就可以很快找到錯誤的地方。
2014.07.11
02:44
于福州
posted on 2014-07-11 02:41 swp 閱讀(165) 評論(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>
            羞羞视频在线观看欧美| 蜜臀av性久久久久蜜臀aⅴ| 国产精品视频yy9099| 亚洲女爱视频在线| 欧美国产一区二区三区激情无套| 国产精品自拍在线| 久久国产一区二区| 亚洲已满18点击进入久久| 久久一区激情| 日韩亚洲综合在线| 亚洲激情网站| 国产一区在线播放| 欧美精品一区二区蜜臀亚洲 | 在线亚洲欧美视频| 国产精品欧美久久| 欧美视频一区在线观看| 久久se精品一区精品二区| 午夜久久资源| 亚洲欧美激情精品一区二区| 亚洲国产欧美一区二区三区久久| 亚洲欧美综合另类中字| 亚洲女同精品视频| 国产精品久久7| 麻豆精品在线观看| 国产精品欧美日韩一区| 欧美日韩精品一区二区三区| 欧美日韩一区自拍| 国产一区二区三区高清播放| 国产伦精品一区二区三区照片91| 国产精品素人视频| 亚洲黄网站黄| 欧美一区二区三区在| 亚洲欧美日韩国产综合| 久久爱另类一区二区小说| 欧美激情精品久久久久久免费印度| av成人黄色| 久久精品国产69国产精品亚洲| 久久偷窥视频| 国内精品久久国产| 亚洲美女网站| 免费观看日韩av| 夜久久久久久| 欧美国产在线视频| 99国产一区二区三精品乱码| 久久视频精品在线| 在线视频欧美日韩| 欧美午夜在线一二页| 亚洲欧洲一区二区在线观看| 久久国产66| 中文一区在线| 欧美亚州一区二区三区| 国产午夜久久久久| 亚洲专区免费| 欧美综合国产精品久久丁香| 国产精品www网站| 亚洲美女中出| 一区二区三区导航| 亚洲国产综合视频在线观看| 亚洲精品黄网在线观看| 免费不卡在线观看| 一区二区三区日韩精品视频| 亚洲图片自拍偷拍| 国产日韩精品视频一区| 免费视频久久| 欧美在线一区二区三区| 国产精品亚洲视频| 欧美一区日本一区韩国一区| 午夜精品在线| 激情国产一区二区| 亚洲免费伊人电影在线观看av| 国产日韩av高清| 午夜精品久久久久久久99黑人 | 欧美激情免费观看| 亚洲第一中文字幕在线观看| 美日韩免费视频| 欧美黄色免费网站| 浪潮色综合久久天堂| 久久亚洲精品网站| 亚洲欧美中文日韩在线| 国产精品久久综合| 免费看成人av| 国内精品久久久久久| 夜夜夜久久久| 国产精品揄拍一区二区| 欧美高清视频www夜色资源网| 久久九九精品| 国模一区二区三区| 欧美一区二区三区电影在线观看| 亚洲精品在线观| 欧美国产欧美亚洲国产日韩mv天天看完整| 99国产一区| 久久久国产精品一区| 久久精品久久99精品久久| 免费一区二区三区| 欧美不卡福利| 91久久精品美女| 久久国产毛片| 久久天堂av综合合色| 国产精品日日摸夜夜摸av| 日韩午夜免费| 欧美亚洲在线播放| 国产日产高清欧美一区二区三区| 亚洲视频在线观看三级| 久久久久久久一区二区| 亚洲电影毛片| 欧美日韩国产成人| 美女精品自拍一二三四| 亚洲电影免费观看高清完整版在线观看 | 欧美日韩免费观看一区| 亚洲私人影吧| 麻豆久久婷婷| 在线欧美一区| 国产美女一区二区| 欧美精品一区二区在线播放| 午夜精品福利一区二区蜜股av| 久久香蕉国产线看观看av| 亚洲日本中文字幕免费在线不卡| 欧美日韩综合在线| 久久久久国产精品麻豆ai换脸 | 亚洲午夜精品视频| 欧美成人免费网| 亚洲一区二三| 91久久亚洲| 亚洲国产精品第一区二区| 国产情人综合久久777777| 农村妇女精品| 欧美日韩亚洲综合| 国产欧美日韩精品丝袜高跟鞋| 性欧美精品高清| 午夜精品成人在线视频| 亚洲欧美日韩另类| 在线综合视频| 亚洲综合欧美| 亚洲午夜羞羞片| 午夜精品美女自拍福到在线| 亚洲视频在线免费观看| 在线性视频日韩欧美| 夜色激情一区二区| 在线亚洲欧美专区二区| 午夜久久99| 欧美在线视频日韩| 久久久水蜜桃av免费网站| 久久精品一区蜜桃臀影院| 女生裸体视频一区二区三区| 欧美v日韩v国产v| 裸体丰满少妇做受久久99精品| 欧美日韩1区| 国产伦精品免费视频 | 99精品国产高清一区二区| 91久久国产综合久久| 亚洲女同同性videoxma| 久久国产精品亚洲77777| 欧美日韩精品一本二本三本| 国产亚洲欧美在线| 亚洲欧洲在线视频| 久久蜜桃香蕉精品一区二区三区| 亚欧成人在线| 亚洲美女黄色| 亚洲宅男天堂在线观看无病毒| 亚洲欧美在线一区| 欧美精品一区在线观看| 国产一区激情| 在线视频欧美精品| 欧美主播一区二区三区| 国产网站欧美日韩免费精品在线观看| 国产欧美精品xxxx另类| 亚洲国产婷婷综合在线精品 | 免费成人av在线看| 欧美色大人视频| 亚洲在线黄色| 亚洲欧美日韩精品久久奇米色影视 | 欧美电影免费观看| 亚洲大胆女人| 久久综合电影一区| 久久久久成人精品免费播放动漫| 国产欧美一区二区精品秋霞影院| 性欧美办公室18xxxxhd| 一本大道久久a久久综合婷婷 | 久久久亚洲午夜电影| 亚洲欧美另类在线观看| 国产香蕉97碰碰久久人人| 午夜在线电影亚洲一区| 久久午夜电影| 亚洲一区www| 免播放器亚洲| 欧美 日韩 国产在线| 欧美福利视频在线| 久久久久一区二区| 国产一区二区久久久| 亚洲美洲欧洲综合国产一区| 一区二区三区在线免费视频| 女同性一区二区三区人了人一| 欧美日韩国产色视频| 亚洲电影免费观看高清| 国内精品**久久毛片app| 亚洲一区二区三区四区五区午夜| 欧美成人午夜77777| 亚洲欧美精品在线| 欧美日韩国产一区二区| 亚洲福利视频免费观看|