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

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>
            麻豆精品在线视频| 久久成人综合视频| 亚洲高清成人| 亚洲尤物在线视频观看| 亚洲人成网站在线播| 国产手机视频精品| 久久久久久久尹人综合网亚洲 | 亚洲国产精品va在线看黑人动漫| 久久黄金**| 久久中文精品| 蜜臀av一级做a爰片久久| 久热re这里精品视频在线6| 欧美一区二区三区啪啪| 午夜欧美精品| 欧美韩日视频| 欧美一区免费视频| 久久久久综合一区二区三区| 久久综合网hezyo| 国产日韩精品在线观看| 在线观看欧美成人| 久久久久久夜| 欧美一级片一区| 国产欧美精品日韩精品| 一本色道久久综合亚洲精品高清| 久久三级视频| 中国成人亚色综合网站| 久久性色av| 国产日产欧产精品推荐色 | 免费日韩av电影| 99re8这里有精品热视频免费| 鲁鲁狠狠狠7777一区二区| 中文精品一区二区三区| 欧美国产另类| 亚洲精品久久在线| 欧美激情在线有限公司| 日韩午夜激情电影| 欧美日韩午夜激情| 一区二区三区四区五区在线| 亚洲国产高清在线观看视频| 久久成人国产精品| 91久久久久久| 亚洲精选久久| 国产一区二区中文| 猛干欧美女孩| 欧美激情亚洲综合一区| 亚洲欧美国产77777| 亚洲图片在区色| 国内精品亚洲| 亚洲国产二区| 亚洲第一在线综合网站| 亚洲女优在线| 在线观看视频一区二区欧美日韩| 亚洲电影成人| 国产精品久久久久久久久免费樱桃| 午夜亚洲精品| 欧美高清在线一区| 午夜精品久久久| 欧美1区视频| 久久国产精品久久久久久| 欧美成人午夜激情| 久久精品夜色噜噜亚洲a∨| 欧美不卡视频一区发布| 亚洲一区二区三区激情| 久久精品免费电影| 亚洲一区二区少妇| 嫩草影视亚洲| 欧美国产视频日韩| 亚洲国产高清高潮精品美女| 亚洲性图久久| 欧美在线观看www| 性欧美大战久久久久久久免费观看| 嫩草成人www欧美| 亚洲国产日韩欧美在线图片| 亚洲国产精品www| 久久精品99无色码中文字幕| 久久久久久一区| 伊人男人综合视频网| 91久久精品国产91久久性色tv| 国产在线拍偷自揄拍精品| 久久精品99国产精品酒店日本| 久久久久五月天| 在线高清一区| 欧美日韩国产色综合一二三四 | 午夜在线播放视频欧美| 亚洲精品一区二区三区福利| 一区二区三区欧美日韩| 欧美亚州韩日在线看免费版国语版| 免费成人你懂的| 亚洲人成人99网站| 欧美日韩一区二区免费在线观看| 99av国产精品欲麻豆| 亚洲靠逼com| 国产精品久久久久aaaa| 午夜视频久久久久久| 一本久久a久久精品亚洲| 欧美三区视频| 你懂的视频一区二区| 亚洲视频在线观看三级| 久久久国产一区二区三区| 亚洲大片av| 国产欧美一区二区精品秋霞影院| 亚洲综合欧美日韩| 欧美激情视频一区二区三区免费| 日韩手机在线导航| 精久久久久久久久久久| 欧美午夜国产| 欧美另类视频在线| 欧美成人精品在线观看| 性色av一区二区三区红粉影视| 亚洲国产综合91精品麻豆| 久久久免费观看视频| 午夜在线观看免费一区| 亚洲视频久久| 亚洲无限av看| 中文精品99久久国产香蕉| 一本久久综合亚洲鲁鲁五月天| 韩日午夜在线资源一区二区| 国产自产2019最新不卡| 国产亚洲午夜高清国产拍精品| 国产麻豆精品视频| 一区二区三区高清| 最近看过的日韩成人| 亚洲作爱视频| 一区二区三区精密机械公司| 亚洲乱码国产乱码精品精98午夜| 欧美激情自拍| 宅男66日本亚洲欧美视频| 久久成人一区二区| 免费欧美日韩| 亚洲桃花岛网站| 久久精品日产第一区二区| 久久婷婷色综合| 亚洲宅男天堂在线观看无病毒| 欧美一区二区三区四区夜夜大片 | 久久久激情视频| 免费成人黄色片| 国产精品一区二区欧美| 红桃视频欧美| 欧美亚洲一区二区在线| 亚洲国产精品成人va在线观看| 久久久久久成人| 在线视频欧美精品| 在线成人亚洲| 极品尤物av久久免费看| 亚洲午夜久久久| 亚洲精品三级| 亚洲视频中文| 国产精品久久97| 亚洲欧美www| 亚洲精品一区二区在线观看| 久久精品人人做人人爽| 国产精品视频自拍| 中国亚洲黄色| 久久超碰97中文字幕| 一区二区三区日韩| 欧美精品成人91久久久久久久| 国产一区二区黄色| 一本色道久久综合亚洲二区三区| 免费观看一级特黄欧美大片| 嫩草影视亚洲| 欧美精品二区| 亚洲电影自拍| 毛片一区二区| 久久精品国产一区二区三区| 欧美阿v一级看视频| 美国成人直播| 亚洲大片在线观看| 欧美激情视频一区二区三区在线播放 | 亚洲免费影视第一页| 亚洲视频在线观看| 亚洲精品美女| 亚洲国产一区二区a毛片| 欧美日韩一区二区国产| 久久国产福利国产秒拍| 日韩天天综合| 国产欧美日韩免费| 久久综合色88| 欧美午夜宅男影院在线观看| 欧美一区二区网站| 免费高清在线一区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美激情一二三区| 久久先锋影音av| 亚洲视频一区二区在线观看 | 欧美aⅴ一区二区三区视频| 在线欧美日韩| 亚洲一区观看| 国产精品久久福利| 免费一区二区三区| 欧美性片在线观看| 亚洲精品国产精品国自产观看| 国产日本亚洲高清| 猛男gaygay欧美视频| 午夜在线成人av| 欧美日韩网站| 亚洲激情第一页| 激情婷婷久久| 久久久久一区二区三区| 蜜桃久久av一区| 日韩视频在线免费观看|