ViolaWWW

ViolaWWW是第一個支援全球資訊網（WWW）腳本和樣式表的瀏覽器，目前已停止开发。其首次在1991／1992年的UNIX作業系統上发布，並成為受全球資訊網发源地CERN所推荐的瀏覽器，然而，其最受歡迎瀏覽器的地位最終被Mosaic所取代。

Viola語言
Viola由魏培源在1991年开发，他也是加州伯克利大学的Experimental Computing Facility（XCF）研究小组成员之一。Viola是一个基于UNIX平台的编程语言，其名称为可视化交互的面向对象语言及应用（Visually Interactive Object-oriented Language and Application）的首字母缩写。

魏培源對於圖形化軟體的興趣始於1989年首次接觸到的HyperCard。魏培源說：「HyperCard在當時非常引人注目，這是一款眾人皆知的超連結程式，但只能在Mac上運作...而我當時甚至連一台Mac都沒有」。由於當時僅能使用X終端機，魏培源使用於1990年創造了第一個版本的Viola語言：“我拿到了一本HyperCard手冊來參考，基本上就是採納了其中的概念並將其實現出來......”。

 ViolaWWW历史 
毕业后魏培源与XCF及创业伙伴一起继续开发Viola。随后其接受了奥莱利公司的投资，這是一家美国电子出版公司。奥莱利公司使用了其软件以显示旗下网站全球網路導航器。魏培源的主要工作是创建一个适用于互联网的Viola版本：

ViolaWWW於1992年發布，是第一個添加擴充功能的瀏覽器，如嵌入式腳本對象、樣式表和表格。早期版本在CERN獲得了诸多好评。Ed Kroll在他1992年的暢銷著作《Whole Internet User's Guide and Catalog》中也重點介紹了该浏览器。随着ViolaWWW的开发，开始与HyperCard越来越相似：

ViolaWWW基于Viola工具包開發，該工具包是用於开发与支持视觉交互式媒体应用的工具。Viola在X Window下运行，早在1992年就能用於建構複雜的超媒體應用程式，並具備小程式和其他互動式內容等功能 。

雖然ViolaWWW奠定了全球資訊網的發展基礎，但由於僅能在-{X Window}-系統上執行，使其無法與隨後將網路推向主流的Mosaic瀏覽器競爭。除此之外，Mosaic對於當時大多數人使用的電腦而言更易於安裝。Mosaic最初是為UNIX系統開發，但很快就被移植到了Microsoft Windows平台Freedman, Alan. Computer Desktop Encyclopedia, 9th Edition. New York: Osborne, 2001, p. 629，而ViolaWWW則從未在該平台上運行。

首創功能
Viola是第一个拥有如下功能的浏览器：

 客户端文件插入，内嵌式框架及类Javascript输出

 Viola式内嵌框架 指定对象 <nowiki>
<INSERT SRC="a_quote.html">
</nowiki><nowiki>
<object type="text/html" data="a_quote.html">
<p>如果浏览器不支持对象，本文字将会显示</p>
</object>
</nowiki>

 一个简单的样式表机制用于指定文档中的样式信息，例如字体，颜色，对齐方式。早在1998年CSS样式表开发之前已經在Viola中实现了。

 Viola式样式表 CSS样式表 <nowiki>
 (BODY,INPUT,P   FGColor=black
                 BGColor=grey70
                 BDColor=grey70
                 align=left

 (H1             FGColor=white
                 BGColor=red
                 BDColor=black
                 align=center

</nowiki>  body, input, p {
  color: black;
  background-color: #707070;
  text-align: left;
}

 h1 {
  color: white;
  background-color: red;
  border: solid 1px black;
  text-align: center;
}

 一个侧边栏用于显示网页中的元信息，如网页内部导航链接等。类似但不那么复杂的侧边栏功能也出现在一些现代浏览器中。
一个HTML文档可以调用的脚本语言，让网页文档可以嵌入高度可交互的脚本及小程序，其可以被视为JavaScript和嵌入对象的先驱。

 ViolaWWW实现语法 JavaScript实现语法 脚本<nowiki>
\class {txtDisp}
\name {showTime}
\script { switch (arg[0]) {
  case "tick":
    set("content"), date());
    after(1000, self(), "tick");
    return; break;
  case "init":
    after(1000, self(), "tick");
    break;
  }
  usual();
}
\width {100}
\height {50} \
</nowiki>function showTimeInDoc() {
  var theTime = document.getElementById('theTime');
  var date = new Date();
  theTime.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
  setTimeout(showTimeInDoc, 1000);
} 将脚本插入网页 <nowiki>
<HTML>
<HEAD>
</HEAD>
<BODY>
<P>And, the time now is:
<LINK REL="viola"
HREF="showTime.v">
</BODY>
</HTML>

</nowiki> <html>
  <head>
    <script type="text/javascript" src="showTime.js"></script>
  </head>
  <body onload="showTimeInDoc()">
    <p id="theTime"> </p>
  </body>
</html>

 參考文獻 

 外部链接 

 下載Viola

Category:網際網路歷史
Category:1991年軟體
Category:1992年軟體