Ajax 板


LINE

note:已經有更快的方法 請看344 --- 不曉得這邊可不可以貼這種javascript的心得@@a 以前寫16進位轉換的時候 寫出一個雖然很笨但是很直覺好用的方法 用字串索引數字外加用charAt暴力分割字串 最近又拿出來用 突然在想有沒有更快的處理方法 於是做以下測試 測試時使用ie6, opera 8, mozilla firefox 1.0.2 結論:用字串+charAt暴力搜尋最好 方法1,2基本上時間相差沒有很多,ie1跑的比2快 mozilla反之,可是都是0.05秒以內的差距 再說1的程式碼比較短... --- 編號 時間 測試項目 1 1953 用字串+charAt暴力切割 2 1969 改用字串表 3 2453 用fromCharCode加上小判斷 4 2360 用暴力字碼表+fromCharCode 5 2016 把1的位元運算改用mod 結論是速度下降 6 2594 把2的字串表改用charAt轉字元表 還是速度下降 7 2469 把3改寫用if else 有比3快可是還是不夠 8 3844 把4的fromCharCode改在建立陣列做 9 4500 把6的charAt(0)改在建立陣列時候做 10 2000 把1的charAt改由subString做 發現會稍慢 --- <script> function dec2hex(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16.charAt(tmpNum); num >>= 4; } return str.reverse().join(""); } function dec2hex2(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.join(""); } function dec2hex3(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = String.fromCharCode((tmpNum>9)?(tmpNum+0x30):(tmpNum+0x37)); num >>= 4; } return str.reverse().join(""); } function dec2hex4(num){ var str16 = new Array(0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = String.fromCharCode(str16[tmpNum]); num >>= 4; } return str.reverse().join(""); } function dec2hex5(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num % 16; str[i] = str16.charAt(tmpNum); num >>= 4; } return str.reverse().join(""); } function dec2hex6(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum].charAt(0); num >>= 4; } return str.reverse().join(""); } function dec2hex7(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; if(tmpNum > 9){ str[i] = String.fromCharCode(tmpNum + 0x30); }else{ str[i] = String.fromCharCode(tmpNum + 0x37); } num >>= 4; } return str.reverse().join(""); } function dec2hex8(num){ var str16 = new Array( String.fromCharCode(0x30), String.fromCharCode(0x31), String.fromCharCode(0x32), String.fromCharCode(0x33), String.fromCharCode(0x34), String.fromCharCode(0x35), String.fromCharCode(0x36), String.fromCharCode(0x37), String.fromCharCode(0x38), String.fromCharCode(0x39), String.fromCharCode(0x41), String.fromCharCode(0x42), String.fromCharCode(0x43), String.fromCharCode(0x44), String.fromCharCode(0x45), String.fromCharCode(0x46)); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.reverse().join(""); } function dec2hex9(num){ var str16 = new Array( "0".charAt(0), "1".charAt(0), "1".charAt(0), "2".charAt(0), "3".charAt(0), "4".charAt(0), "5".charAt(0), "6".charAt(0), "7".charAt(0), "8".charAt(0), "9".charAt(0), "A".charAt(0), "B".charAt(0), "C".charAt(0), "D".charAt(0), "E".charAt(0), "F".charAt(0)); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.reverse().join(""); } function dec2hex10(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16.substring(tmpNum,tmpNum + 1); num >>= 4; } return str.reverse().join(""); } function $(str){ return document.getElementById(str); } var dateTmp; function t1(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex(i); } $("d_t1").innerHTML = (((new Date().getTime()) - dateTmp)); } function t2(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex2(i); } $("d_t2").innerHTML = (((new Date().getTime()) - dateTmp)); } function t3(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex3(i); } $("d_t3").innerHTML = (((new Date().getTime()) - dateTmp)); } function t4(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex4(i); } $("d_t4").innerHTML = (((new Date().getTime()) - dateTmp)); } function t5(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex5(i); } $("d_t5").innerHTML = (((new Date().getTime()) - dateTmp)); } function t6(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex6(i); } $("d_t6").innerHTML = (((new Date().getTime()) - dateTmp)); } function t7(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex7(i); } $("d_t7").innerHTML = (((new Date().getTime()) - dateTmp)); } function t8(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex8(i); } $("d_t8").innerHTML = (((new Date().getTime()) - dateTmp)); } function t9(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex9(i); } $("d_t9").innerHTML = (((new Date().getTime()) - dateTmp)); } function t10(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex10(i); } $("d_t10").innerHTML = (((new Date().getTime()) - dateTmp)); } </script> <input type=button onclick="t1();"/><span id="d_t1"></span><br/> <input type=button onclick="t2();"/><span id="d_t2"></span><br/> <input type=button onclick="t3();"/><span id="d_t3"></span><br/> <input type=button onclick="t4();"/><span id="d_t4"></span><br/> <input type=button onclick="t5();"/><span id="d_t5"></span><br/> <input type=button onclick="t6();"/><span id="d_t6"></span><br/> <input type=button onclick="t7();"/><span id="d_t7"></span><br/> <input type=button onclick="t8();"/><span id="d_t8"></span><br/> <input type=button onclick="t9();"/><span id="d_t9"></span><br/> <input type=button onclick="t10();"/><span id="d_t10"></span><br/> -- ▂▃◣ telnet://whshs.twbbs.org P_mingray ▂▃◣ telnet://bbs.kkcity.com.tw KKCity mingray ▃▊▌▆ telnet://wretch.twbbs.org P_mingray ▄▋▋▅ 個人網站 http://pyms.fly.to/ MingRay隨意閒聊 填色工具1.1.7感謝大家的支持與愛用 1.1.8版目前測試中 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.131.243 ※ 編輯: nosql 來自: 59.115.131.243 (08/09 20:26) ※ 編輯: nosql 來自: 59.115.131.243 (08/10 00:05) ※ 編輯: nosql 來自: 59.115.131.243 (08/10 00:05)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP