JavaScript 的重生
2007‧0708
一開始是 HTML 擅場,再來是加上了 256 色的 Gif 動畫,後來是 DHTML 的年代 ( DHTML 說穿了就是 HTML + JavaScript )
雖然能讓網頁活蹦亂跳,但 JavaScript 畢竟不是很好學,Gif 動畫既醜檔案又大
於是乎更能活蹦亂跳、檔案又小的 Flash 出現了
Flash 一開始只是為了以向量動畫來取代笨笨的 Gif 動畫,所以 ActionScript 也只是聊備一格、做一些簡單的控制而已
於是乎一切就在當初考量不周 ( 沒人想到 Flash 後來會爆紅 ) 的基礎開始發展 ...
Flash 被迫要有更多的控制功能,於是乎 ActionScript 就越來越不向舊相容
Flash 被迫要能與 Server / DataBase 連接,於是乎 ActionScript 的長相就越來越奇怪
HTML 越來越難用 ( 天生受限、功能不足 ),故 XML 出現了
Flash 也越來越難用了 ( 雖然 Flash 有串流功能,但 SWF 檔是很老舊的架構:一樣是天生受限、功能不足 ),故 Ajax 出現了
Ajax ( Asynchronous JavaScript And XML, 非同步的 JavaScript 和 XML ) 簡單來說就是 JavaScript + XML,是個半新半舊的東東
類 - Ajax 的觀念早就存在許久了:網路聊天室在發言後不必 Refresh,就是這種觀念
而 Google Maps 更是把 Ajax 推向大眾的濫觴
總的來說:
‧HTML 的架構太老舊了,所以需要 XML ( 今天的網路環境還只是停留在 HTML → XML 的過渡期 )
‧DHTML ( HTML + JavaScript ) 不易於編製,所以 JavaScript 在 Flash 的興起後,幾乎被淘汰
‧Flash 的架構也有點舊了,所以 Ajax 出現了 ( JavaScript 算是第一次重生 )
‧微軟的 VBScript 沒人用,故微軟強化 JavaScript 為 Jscript ( 與 JavaScript 相容,但是架構更大 )
並且用在 ASP.NET AJAX ( JavaScript 算是第二次重生 )
‧Silverlight 1.0 目前先支援 JavaScript ( JavaScript 第三次重生了 )
如此可以保障您投資在 Script 上的時間,不會像 ActionScript 一樣地隨時被犧牲
接著在 Silverlight 1.1 起,會支援 VB、C#、Ruby、Python、VBx、…
Server 端更支援 ASP.NET、ASP.NET AJAX、PHP
再看一次這個 全螢幕 的小範例:( 呼叫了外部的串流視訊檔之後,就以 JavaScript 來控制按鍵、動畫與全螢幕 )
function media_stop(sender, args) { sender.findName("media").stop(); }
function media_pause(sender, args) { sender.findName("media").pause(); }
function media_begin(sender, args) { sender.findName("media").play(); }
function canvas_loaded(sender, args)
{ var control = sender.getHost(); control.content.onfullScreenChange = "onFullScreenChanged"; }
function toggle_fullScreen(sender, args)
{ var silverlightControl = sender.getHost(); silverlightControl.content.fullScreen = !silverlightControl.content.fullScreen; }
function onFullScreenChanged(sender, args)
{
var silverlightControl = sender.getHost();
var buttonPanel = sender.findName("buttonPanel");
if (silverlightControl.content.fullScreen == true)
{ buttonPanel.opacity = 0; }
else
{ buttonPanel.opacity = 1; }
var mediaPlayer = sender.findName("media");
mediaPlayer.width = silverlightControl.content.actualWidth;
mediaPlayer.height = silverlightControl.content.actualHeight;
}
使用 Flash,您將只有一種 Script 可用:ActionScript
Flash 與 Server 端的整合不易:只能選擇 Adobe Flex 等產品
使用 Silverlight,您可以挑選任何您學過且順手的 Script
Silverlight 與 Server 端的整合,更是在一開始架構時就考慮進去了