好用JSON Editor

程式技術/Javascript 2011/12/30 12:22
views: 22727 times
在開發網頁程式, 用到解析和產生 JSON 是經常發生的事, 不過如何快速的解析或是產生 JSON , 又或是用來除錯這些 JSON 的資料, 不像 XML 可以利用瀏覽器來幫忙, JSON 可以利用這個作者 Thomas - http://www.thomasfrank.se/about.html 開發的工具來進行 JSON 的線上測試.

說明在這裡: http://www.thomasfrank.se/json_editor.html
他有線上使用版, 和下載版, 若是進行除錯, 可以直接使用線上版: http://www.thomasfrank.se/downloadableJS/JSONeditor_example.html

以之前文章 http://diary.tw/tim/22 的資料為例:

{ 'obj1': {
  'child1':'value1',
  'child2':'value2'
  },
  'array1': [1, 2, 3, 4, 5]
};

將內容貼到 JSON Editor 裡, 按下 save 鍵, 就會產生出該 JSON 的樹狀結構在該 editor 左側(記得要自己按下 + 號展開, 如下圖:
用戶插入圖片
這樣可以很容易的理解及看出該 JSON 資料的內容. 若是要取得某一節點, 可以點在該節點上, 並看 editor 上的 label及下面的 value 就可以利用程式取出該 JSON 資料結構的資料點, 以上面的 array1 中的 1 為例, 圖示如下:
用戶插入圖片

這樣是不是十分方便, 對於在使用 JSON 的開發上, 有十足的加速作用呢!


top

時間差計算機-web版

程式技術/Javascript 2011/10/18 17:16
views: 43929 times
這個時間差計算機是因為最近在查圖表中的流量計算使用, 由於 cacti 圖表可以自行放大想看的區間, 若是要將頻寬換成流量, 要把圖表的起迄時間算出來, 利用平均頻寬再乘上時間差, 就可以算出流量, 例如:


用戶插入圖片
這張圖來看, 是剛好一天的流量, 在未放大時, 很好計算, 一天的流量 outbound 是 328.66kbps * 86400 seconds = 27Mbits = 3.385MBytes


用戶插入圖片
這張圖則是放大後來看, 時間是 2011/10/18 00:07:38~2011/10/18 07:45:19 , 利用這個時間差計算機來算: http://sample.diary.tw/timediff/ 可得 27461 秒, outbound 流量則為 894.40kbps * 27461 seconds = 23.42Mbits = 2.928MBytes

可以看得出來, 主要的 outbound 流量集中的下面放大的這個時間區段.


有時候要計算這個小時間差, 雖然紙筆很方便, 但是數量一多就不好算了, 所以寫個小程式用來計算使用, 這個程式利用了 jQuery, jQuery UI, 和 Timepicker to jQuery UI - http://trentrichardson.com/examples/timepicker/ 來達成, 計算的方式是使用 javascript 來計算, 所以是利用 Date 的 parse() 來將日期時間轉為 milliseconds, 再來計算兩個時間差, 就可以得到計算的結果, 如下:

用戶插入圖片

若實用或方便的話, 請多多利用. 網址: http://sample.diary.tw/timediff/




top

Javascript已強大到可以執行linux

程式技術/Javascript 2011/05/20 14:29
views: 62784 times
這篇是在 zdnet 看到的:

http://www.zdnet.com.tw/news/software/0,2000085678,20149826,00.htm

利用 javascript 模擬 pc 執行 linux , 因為 javascript 的處理能力已經相對強大了, 可以跑模擬 pc 後執行 linux, 網址在這裡:

http://bellard.org/jslinux/

這樣看起來, 一般 develper 使用的 javascript 還真是用不了他的功能的 1/10 吧, 看來, 愈來愈強大的 javascript engine 可以做更多更多的事了!
top

表單上傳檔案取得檔名問題

程式技術/Javascript 2011/05/18 20:40
views: 32368 times
在前端網頁上, 若要上傳檔案, 是利用一個 <input type=file>的標籤來進行的, 這個 UI 看起來的長像在不同瀏覽器會有不同的結果, 也因為這樣, WEB DESIGNER 常常需要做一些設計來美化及一致化這個長相.

這篇文章不是在討論這個上傳檔案的長相, 而是要探討在前端程式碼取出上傳檔案的名稱, 這個也在不同的瀏覽器有不同的結果, 尤其新的瀏覽器又增加了一些特異功能. (如隱藏路徑)

這樣一來, 若是要對上傳檔案名稱欄位取出做一些判斷的話, 可要注意這些狀況的差異, 這裡寫了個小程式, 取出 <input type=file>的值, 在不同瀏覽器下可以測出不同的結果, 連結在這裡:

http://sample.diary.tw/25

我們以上傳 C:\test\1.txt 為例, 在不同瀏覽器下的結果如下:

IE9:
用戶插入圖片


Firefox 4.01
用戶插入圖片


Google Chrome 5:
用戶插入圖片


Safari 5:
用戶插入圖片


從上面畫面的結果來看, 發現 IE9 及 Google Chrome 會有含路徑的檔名, 但會隱藏路徑, 而 Firefox 4.01及 Safari 5則只會出現檔名而已, 不會有路徑, 而 IE6, IE7, IE8 的狀況則是 IE8 會像 IE9 一樣, 但 IE7, IE6 則是真實的檔案路徑, 如下:

IE6:
用戶插入圖片


IE7:
用戶插入圖片


IE8:
用戶插入圖片


這樣就清楚啦!
top

IE9的釘選網站功能

程式技術/Javascript 2011/04/19 12:38
views: 52074 times
微軟已於3月正式推出IE9了, 其中 IE9 的 pinned site 功能很有意思, 將 IE9 和 Windows 7的介面整合在一起, 實作的方式不難, 只需要在網頁上加幾行 meta data tag 就可以了, 可以參考保哥的這篇文章:

http://blog.miniasp.com/post/2010/09/21/IE9-Pinning-and-JumpLists-on-your-website.aspx

這裡只需要用到 html 即可.

不過若是想要做到動態增加的方式來進行 pinned site 功能的設定呢? 可以參考保哥的這篇:

http://blog.miniasp.com/post/2011/04/08/IE9-Pinned-Sites-Defining-Jump-List-Category-and-Adding-Items.aspx 

利用 javascript 程式碼來操作即可, 相信是很容易上手的!

相關資料請參考:

http://msdn.microsoft.com/zh-tw/ie/gg315439 釘選網站 (Pinned Sites):Windows 7 桌面系統與 Internet Explorer 9 的整合

http://msdn.microsoft.com/en-us/library/gg491738.aspx Introduction to Pinned Sites


top

VideoJS-HTML5的影片播放器

程式技術/Javascript 2011/02/19 23:19
views: 81162 times
用戶插入圖片

VideoJS-圖片引用自http://videojs.com/

瀏覽器支援HTML5後, 可以利用 <video> 標籤來做影片的播放, 與之前需要 FLASH 的外掛不同, 讓瀏覽器本身就可以直接直援播放影音的功能.

不過有時需要有向前相容的功能, 也就是在不支援 <video> 這個 html5 標籤時, 也需要能播放, 這時候可以利用之前曾提過的 jw player (http://www.longtailvideo.com/players/) 或這篇文章要介紹的 VideoJS - http://videojs.com/

這個播放器利用了純 HTML5 的 <video> 標籤功能, 配合了可以自訂的 CSS 來產生播放器, 並同時支援了多款現行的瀏覽器, 以及向前相容的 FLASH 語法, 方便在撰寫影音播放器的開發者使用, 並且還有一個方便的產生器: http://videojs.com/embed-builder/ 還有多組 SKINS 可供應用: http://videojs.com/skins/ 真的還蠻方便的呢!


top

JW Player for Silverlight

程式技術/Javascript 2011/02/18 13:54
views: 41612 times
由於要播放 WMV 或是 Windows Media Service 的影音串流, 使用原來的 embedded windows media player 的方式, 比較難跨不同瀏覽器及作業系統, 自從 silverlight 出來之後, 方便的跨瀏覽器和作業系統的特性, 方便讓原來使用Windows Media 格式的影音及串流在不同瀏覽器及作業系統間可以播放.

接下來看看這個很方便的影音播放器, JW Player, http://www.longtailvideo.com/players/, 最早期他是提供了 Flash Player 供應用, 後來有了 Silverlight 及 HTML5 支援影音後, 也陸續推出了 Silverlight 及 HTML5 的播放器.

我們今天要看的是 JW Player for Silverlight 的這個播放器, 其實使用上非常簡單, 可以到這裡下載: http://www.longtailvideo.com/players/jw-wmv-player/ 下載的程式碼內容就有簡單的範例可供應用, 例如要生成一個播放器可以在網頁上播放, 只需要以下的程式碼:


more..




top

web版線上測試javascript-JSFIDDLE

程式技術/Javascript 2010/11/11 14:11
views: 133337 times
這個 JSFIDDLE: http://jsfiddle.net/ 是一個線上版本, 進行 javascript 測試及除錯使用的方便工具, 包含了大量的 javascript frame, 有 MooTools, jQuery, Prototype, YUI, Glow, Dojo, Processing, ExtJS, Raphael, RightJS 及不使用 framework 多種選擇.

不僅如此, html, css 更是能分區編輯, 方便測試, 而且實作的程式結果也可以存下來, 方便日後再拿出來看, 或是進行 share 討論, 還能分支開發 (fork) 下去, 真的是十分方便實用的 javascript 工具.

例如這個測試的程式, 功能就是一直累加而已, 可以玩看看: http://jsfiddle.net/Ej4rC/

還可以直接 embed (透過 iframe ) 放到外站, 如下:



可以分享到外站, 一邊看程式, 而且可以馬上玩, 真是很不錯的工具, 快來玩看看吧!
top

jQuery traverse元件屬件

程式技術/Javascript 2009/03/19 18:54
views: 31633 times
traverse 是程式寫作上一個還算蠻重要的 runtime information. 尤其在 web 上, jQuery 的概念整個就是建立在這樣概念上. 利用 selector 將要找的東西找出來, 再進行更動或讀取這樣的狀況.

現在利用一個小案例來說明這個 case. 我要找出頁面上所有有 onclick 屬性的 anchor, 並加以標註出來, 語法是這樣的:

$("a[onclick]").addClass("highlight1");

是的, 你沒看錯, 就是這樣一句而已. 這句語法的解釋是這樣的:

1. $("a") 是找出所有的 anchor
2. $("a[onclick]") 是找出所有的 anchor 而且有 onclick 屬性的
3. addClass 就是加上一個 css class

就只是這樣而已. 我們來看看範例吧: http://sample.diary.tw/17/j1.html 其中的 button: [find anchor with onclick attr.] 按下後, 會將有 onclick 屬性的 anchor 用 highlight1 的 lightgreen 的背景色加上, 就很清楚了. 其中只有 f1(), f2() 會呈現出來效果, 而其他的 anchor 沒有下 onclick 屬性的, 都不會被影響.

接下來找出 anchor 的連結屬性, 開頭是 http://www 的, 這個也很有趣, 語法如下:

$("a[href^='http://www']").addClass("highlight2");

也是一樣, 一行搞定, 語法說明如下:

1. $("a[href^='http://www']")是指 anchor 中, href 屬性開頭為 http://www 的.
2. addClass 就是加上一個 css class
(在1.2版時, 還可以使用 @在 href 前, 也就是 @href^='xxx' 這樣, 不過在 1.2 已不推薦使用, 1.3 時已不支援了, 要特別注意 @ 這個符號囉)

一樣來看範例, http://sample.diary.tw/17/j1.html 其中的 button: [find anchor start with http://www] 按下後, 其中開頭為 http://www 的 anchor 會套用 lightblue 的背景色, 是不是很方便呢?

其中的 ^= 是開頭為, 而 $= 是結束為, 而 *= 是含有, 所以若是要找連結為 .pdf 結尾的, 可以使用:

$("a[href$='.pdf']")

再來就是談 traverse 的語法, 其實也很單純, 是利用 each 這個方法, 再利用匿名函數取得陣列代號, 就可以將符合條件的元素陣列逐一列舉出來, 如下:


程式碼說明如下:
1. 先將符合條件的 objects 都放入 elements 陣列
2. 再利用 each 方法, 配合匿名函數, 將 elements 陣列內的 object 的 href 屬性結合成產生的字串訊息
3. 最後再將訊息秀出

參考範例: http://sample.diary.tw/17/j1.html 其中的 button: [traverse anchor start with http://www] 就會將所有開頭為 http://www 的 object 的 href 屬性 alert 出來囉.

相信對於使用 jQuery 的朋友們, 能更清楚整個運作的邏輯..



top

好棒的jQuery介紹網站

程式技術/Javascript 2008/11/12 15:35
views: 136080 times
jQuery, 因為最近一些狀況(就是被 m$ 整合進入 visual studio ), 瞬間變成當紅炸子雞. 讓想學的人更想學, 而不知道或原本沒想學的人也想學.

這兩天在看一些資料的時候, 無意間找到這個網站: www.visualjquery.com , 還真不是蓋的, 是 "visual" 的 jQuery 哦, 所有的介紹都直接用視覺化的方式呈現, 方便學習 jQuery 的人, 無論是新手, 老手都很適用的一個了解 jQuery 技術的網站. 一定要來看看哦!
top








【預購】林志玲2012年桌曆 SAPIDO傻多  N速Gigabit 多網型無線寬頻分享器 (GR-1733) SanDisk 16GB Mobile Ultra microSDHC 附轉卡(平輸) (繁中版)Panasonic GF3+14mm F2.5+14-42mm 雙鏡組 人因 Ergotech Tablet  多媒體娛樂機 ★FujiXerox DocuPrint P205b S-LED雷射印表機(粉紅機) (繁中版)Panasonic GF3+14mm F2.5+14-42mm 雙鏡組 飛利浦免油健康氣炸鍋(HD9220) 華擎平台【龍神傳說】四核SSD獨顯電玩機 美國VIZIO 47吋Full HD液晶顯示器+視訊盒 E470VL-TW(M) JSmax Android MID-1023 10.1吋平板電腦(全新升級版) lenovo ideapad G575雙核心15吋筆電【含微軟Windows 7】315301 Lenovo ideapad G570 59-309037 新雙核B950 15.6吋筆電 美國西屋42吋FHD液晶顯示器+視訊盒(LC-42E300A) 【快】Toshiba 新禾公司貨 V5 1TB 黑靚潮行動硬碟 OCZ Solid 3 120GB 2.5吋 SATA3 固態硬碟 SanDisk 16GB microSDHC (Class 4) 記憶卡 HP LaserJet Pro CP1025nw 無線迷你彩色雷射印表機 D-Link DHP-501AV 500Mbps電力線網路橋接器(雙包裝) IBT-1073VOD 雲端劇院 Brinno Garden Watch Cam 生活記錄器 SAPIDO N速 3.5G易享機 支援BT (GR-1222) 35合1掌上型麻將機2代 三洋 SANYO 日本原廠 18650 全新高效能高容 2600mAh 鋰電池充電組 華擎H61平台【迷你戰將】雙核19型效能液晶電腦


 Waiting...