more: Jollen 的 Embedded Linux 教育訓練

Jollen's Blog「HTML5 & JavaScript」裡的所有文章!

  

JavaScript 王者再臨

jollen 發表於 April 11, 2012 7:10 PM

JavaScript 是「王者再臨」的最佳代言人,由於 jQuery 被大量應用在網頁設計上的原因,讓 JavaScript 再度被重視了起來;再加上 HTML5 的推波助瀾,JavaScript 儼然成為今年最受矚目的程式語言。 現在,JavaScript 的主要用途,已經由過去的動態網頁(Dynamic Webpages),轉為開發 HTML5 App 角色;也就是 HTML5 的應用。我們不僅僅使用 JavaScript 製作有動態效果的網頁,還藉助它來開發大量的 UI interactive、使用者體驗的設計,以及,最重要的雲端服務的整合。 還有一個很重要的應用,就是「JavaScript in Browser」,也就是利用 JavaScript 來增強瀏覽器的功能,最為大家所熟悉的例子,就是 Google Chrome。Google Chrome 為了增強對 JavaScript 的支援與效能,開發了新的 JavaScript 引擎;在日記「HTML5在手持裝置將開始爆發式成長」就提到了,「JavaScript引擎的成熟度是關鍵」。 所以,測試 JavaScript 的使用案例(Use Cases)在各大瀏覽器的效能,更為一項重要的工程工作。目前被軟體工程師廣為使用的 jsPerf 就是為此而生。更進一步地,由於...

什麼最重要、Browser 最重要

jollen 發表於 May 16, 2012 11:53 AM

HTML5 來了。什麼最重要,Browser 最重要。因為所有 HTML5 App 都在 Browser 環境裡執行,所以,HTML5 App 的 Runtime 就是瀏覽器。 正因為這個原因,各家軟體大廠無不加碼研發人才,努力打造一個能完全相容 HTML5 的瀏覽器,連今年10月份要登場的 Windows 8 Mobile Phone 也在 HTML5 做了很大的改進。 可以這樣想,第一代的 App 使用 OS 做為 Runtime。第二代的 App 使用 Java Virtual Machine 做為 Runtime,例如:Android。第三代的 App 將使用 Browser 做為 Runtime。所以,Runtime...

Tizen 奮起、將打敗 Opera 在行動瀏覽器技術稱王

jollen 發表於 May 16, 2012 1:04 PM

「什麼最重要、Browser 最重要」提到說,瀏覽器方面,Maxthon 與 Opera 目前在桌面與行動裝置,呈現暫時領先的狀態。還有其它爆點嗎? Tizen 的前身 MeeGo,身世相當坎苛,它是 Moblin 與 Maemo 的合體。Moblin 原本是 Intel 主導的一項開源計畫,Maemo 則是 Nokia 主導的一項開源計畫,這二項計畫的身世又更為坎苛,已經不忍心再提了。 Tizen 即將打敗 Opera 眼尖一點的網友,可以發現,在行動瀏覽器方面,Tizen 居然已經突破 400 分大關。待 Tizen 正式上市後,將擁有最強的行動瀏覽器。Tizen 在行動瀏覽器方面,即將稱王,並且還大幅領先了老字號的 Opera,真是令人佩服。 不得不承認,在行動裝置市場,歷經風風雨雨的 Intel,這回找三星一起做 Tizen,還真是找對人了。正巧,就在一個多星期前,Tizen 1.0 也正式釋出 SDK 以及原始程式碼了。從 Tizen 官方的消息看出,Tizen 1.0 主打的亮點,正是...

[教育訓練紀錄] HTML5+JavaScript 設計模式:jQuery pattern

jollen 發表於 June 18, 2012 12:23 PM

上週在北京舉辦「課程名稱HTML5 & 雲端整合: 深入MOBILE & CLOUD 設計模式」課程。這門課是從 HTML5 觀念到實作的第一門課(The 1st lesson from concepts to practice),這門課的重點在於「設計模式」(Design pattern)。 當天介紹了「jQuery pattern」。jQuery pattern就是開發jQuery插件(Plugin)的方式,所以技術上倒也沒有什麼學問。不過,jQuery pattern有很高深的哲學道理,意思是說,在軟體工程領域裡,它創造了一個獨特的觀念。這個觀念就是jQuery知名的”$”(Dollar sign),也就是「Selector」。 以下的例子,就是jQuery pattern: $(“div#news”).html(“<h2>News Today</h2>”); 從jQuery設計模式的角度思考,如果今天我們想要透過WebSocket與伺服器溝通,並且在一個”div”裡來顯示結果,應該怎麼設計呢?想法如下: 1. 將WebSocket的功能寫成一個function 2. 將JavaScript function封裝成module 3. 在jQuery裡擴充新的函數,簡單說,就是製作一個jQuery插件(Plugin) 以下是一段程式碼樣板: (function($) { $.fn.createWebSocket = function ()...

[教育訓練紀錄] jQuery 模式的優點:提升 JavaScript 程式碼效率

jollen 發表於 June 27, 2012 5:28 PM

在教育訓練課程「HTML5 軟件開發: Mobile, Web & Cloud 設計模式」裡提到「使用 JavaScript 選擇器」可提升程式碼效能的原則。這個觀念,可延續前一篇日記的內容繼續探討。 在實作Web Socket連線生成時,筆者選擇使用了jQuery pattern的觀念來實作。jQuery pattern 本質上是一種選擇器模式。 為什麼要使用選擇器模式,除了程式碼的組織較好外,另一個原因就是效能:使用選擇器方式可以讓JavaScript程式碼效能更好。 根據不同瀏覽器的實作,選擇器模式可以達到超過十倍以上的效能。典型的選擇器模式,是直接呼叫DOM的API: document.querySelector(“#header”); 使用jQuery的選擇器「$」是目前的主流做法。再回顧上一篇日記的寫去: <div id="message"></div> <script type="text/javascript"> $("#message").createWebSocket(); </script> 總計利用了三個模式: 以Closure模式將類別封閉,這與Static class有關係,在這裡先不做討論 使用選擇器模式,範例採用目前最流行的jQuery selector ”$” Read/Write Div Pattern 選擇器模式的效率取決於瀏覽器本身的實作,不過,以選擇器模式來代替直接存取DOM,一般相信是最好的做法。...

[教育訓練紀錄] 讓 Android WebView 支援 WebSocket Client

jollen 發表於 October 19, 2012 11:48 AM

Android 內建瀏覽器不支援 WebSocket Client 端,導致使用 HTML5 開發的 Apps 無法使用 WebSocket 與 Server 建立連線。主要的問題在於 WebView 元件沒有實作 WebSocket 協定。Android SDK + PhoneGap 所製作 HTML5 Apps 是將 WebView 封裝至 APK 裡,所以 WebSocket 無法正常工作是正常的。 不過這個問題也沒有那麼難解決,在等待 WebView 加入 WebSocket 以及更多 HTML5 功能前,我們只能暫時自行實作。還好,現在有很多 Open source 的...

鴻海「八屏一雲」計畫:導入 HTML5 與技術關鍵

jollen 發表於 January 25, 2013 4:12 PM

文/Jollen Chen(原文刊載於 CTimes 雜誌 2013 年 2 月份) 八屏一雲是鴻海科技集團擎畫的技術藍圖。鴻海科技集團協助 Moko365 舉辦 HTML5 相關課程,筆者有幸擔任系列課程的主要講師,在整理相關技術的過程中,得到了一些心得。使用 HTML5 做為八屏裝置的核心技術時,有什麼關鍵的地方要特別注意?筆者整理了幾個議題,在此與大家分享。 第一、跨裝置。這是第一個「八屏一雲」的重要技術工作。從技術的角度來說,「八屏一雲」,要能跨裝置(cross-device),而好的技術莫過於 HTML5。HTML5 是一個標準,透過此標準來開發 Web App;Web App 必須透過瀏覽器來執行。我們說,Web App 的執行環境(runtime)是瀏覽器。 第二、跨瀏覽器。 第二次瀏覽器大戰開始於2010年左右,大概是 HTML5 標準即將發佈,以及智慧型手機發展進入最高峰,二個時間的交匯點。現今,在 HTML5 世界裡,較具代表性的瀏覽器是 Firefox、Safari 以及 Chrome。 由於每一個瀏覽器實作 HTML5 標準的程度不一,並且實作上還會有一些小差異,因此,讓 Web App 能做到跨瀏覽器(cross-browser)成為另一個重要任務。還好,這個工作是階段性的,不過倒是能讓開發者忙碌很長一段時間。 第三、善用...

簡報:讓 HTML5 走進 IPTV Framework

jollen 發表於 April 23, 2013 1:21 PM

Moko365 與 OESF 於 4/16 日舉辦一場有關 IPTV 的研討會,目的是探討 ITU-T 所制定的 H.762 標準。 H.762 技術採用部份 HTML5 標準,成為一個 IPTV 的互動多媒體環境。根據筆者近期的開發心得,H.762 對於 TV Apps 的開發仍有所不足,因此在這個演講裡,筆者分享了一些想法,並提出 H.762 的修正建議。這個修正建議,主要是希望能把 HTML5 技術帶入 IPTV Framework 裡。 對 IPTV 標準有興趣的朋友或廠商,歡迎多加交流。簡報網址如下: HTML5 in IPTV Framework...

瀏覽器引擎的黃金時代開始:Blink 出現、三星來了

jollen 發表於 April 29, 2013 2:28 AM

文/Jollen Chen(原文刊載於 CTimes 雜誌) Google 在 2013 年的 4 月份發佈了一則消息:將開發新的瀏覽器引擎。這是瀏覽器界的大事,這代表著瀏覽器競賽已經進入了一個新的里程碑。這個新的瀏覽器引擎稱為 Blink,不過它並不是全新的開發專案,Blink 是 WebKit 的一個分支。目前,最新版本的 Chrome 瀏覽器已經改採 Blink 引擎。 Blink 直接採用 WebKit 的原始程式碼,並不是從新做起。這叫人好奇 Google 為何不繼續在 WebKit 引擎上開發,卻硬是將 WebKit 給「fork」了出來?這是瀏覽器引擎的競爭下,一個積怨已久的問題,簡單來說,這是一個商業策略,並不是單純的技術考量。今年二月份,Opera 宣佈每個月有超過 3 億使用者,在使用它們的瀏覽器,同時,Opera 也將開始貢獻 WebKit 專案。這個事件應該是 Google 決定開啟 Blink 計畫的主因之一。 Apple 在...

改用 Client-Side Markdown Parsing

jollen 發表於 August 31, 2013 4:44 PM

Markdown 的解析可以從 Server-side 來做,也可以由 Client-side 進行。如果是從 Server-side 來解析,我在目前專案裡採用的是 [marked]。這是很不錯的 Markdown parser,並且支援 [GitHub flavored markdown]。 Marked 也有一份 Client-side 的 port,稱為 [Strapdown.js],Strapdown.js 也支援 GitHub flavored markdown。有於以下 3 個原因,後來我將 Server-side parsing 的做法,修改為 Client-side parsing: 1. UX - 原先採用 Server-side (RESTful) + Backbone way...

Frontend Engineering-認識 Single Page Application(SPA)

jollen 發表於 September 19, 2014 1:06 AM

想開始學網站製作嗎?先看看這篇文章,認識「網站製作」:不只是寫寫 HTML 文件。 關於 Single Page Application(SPA)的討論,較早的學術文章,可以追溯到由 Delft University of Technology 的 Software Engineering Research Group,所發表的一份技術報告:Migrating Multi-page Web Applications to Single-page Ajax Interfaces[1]。Ali Mesbah 與 Arie van Deursen 在這份 2006 年的技術報告裡,提出一個很重要的問題: "web applications have suffered from poor interactivity and responsiveness...

Top | 授權條款 | Jollen's Forum: Blog 評論、討論與搜尋
Copyright(c) 2006 www.jollen.org