《中国计算机报》出版日期:1999-05-17 总期号:823 本年期号:33
人面桃花相映红
网页交互技术
Iris
●一、嵌入脚本程序
html的script元素可用来在网页中插入脚本(script)程序。它使用language属性来指定所用的脚本语言。目前能够使用的语言主要是javascript和vbscript。
1. javascript
用javascript编写的脚本程序可加强客户和服务器应用程序的功能。
html中嵌入脚本程序使用script元素:
〈script〉…〈/script〉
脚本的文本插入在script元素的起始和结束标记之间。
对于javascript,必须将script元素的language属性设置为javascript:
〈script language=”javascript”〉
〈/script〉
language属性是必须使用的,除非用src属性来指定脚本语言:
〈script src=”http:common.javascript”〉
〈/script〉
src属性是可选的。使用src属性时,可用来指定脚本程序文本的url:
〈script language=”javascript” src=url〉
script元素内的脚本语句在网页载入时就立即会被计算,但其功能被存储起来,而没有执行。当网页中某事件激活时,脚本中的语句才会执行。同样,src url信息也是立即读入和计算的,而且当网页中同时含有脚本文本时,src脚本先计算。
由于有的浏览器不支持script元素,所以为了保证脚本文本不会被显示到网页中,可将脚本内容放入html注释中。例如:
〈!-- begin to hide script contents from old browsers.
〈!-- end the hiding here.--〉
2. vbscript
在html文档中使用vbscript时,需要将代码包括在〈script〉 … 〈/script〉标记中,它也要求使用language属性来指定语言:
〈script language=”vbs”〉
〈/script〉
下面是vbscript的一个使用示例,它假定在html文档的其它地方已创建一个称作“btnhello”的按钮:
〈script language=”vbs”〉
〈!-- 注释符号使不支持vbscript的浏览器中不会显示vbscript代码
sub btnhello—onclick
msgbox “hello, 今天天气真好!”
end sub
--〉
〈/script〉
这样,当用户点击按钮“btnhello”时,就会显示一个信息框,内写“hello, 今天天气真好!”。
●二、嵌入java小应用
sun公司发明的java使html作者有可能在网页中包含实时音频、动画或其它应用。方法是在网页中嵌入java小应用(applet)。这些小应用必须事先用java开发工具进行编译才能插入html文档中。
要将java小应用添加到html网页中,必须使用applet元素。该元素支持code属性,它指定小应用的代码(不是java源代码,而是编译后生成的class代码)。一般还应该使用width属性和height属性指定小应用在网页中运行时所占的面积,例如:
〈applet code=”myapplet.class” width=100 height=140〉
〈/applet〉
applet元素的完整用法如下(其中方括号括入的内容表示可选):
〈applet
[codebase = codebaseurl]
〈!-- applet的基础url--〉
code = appletfile
〈!-- applet的类文件名--〉
[alt = alternatetext]
〈!--类似img的alt属性--〉
[name = appletinstancename]
〈!-- applet实例的名字 --〉
width = pixels height = pixels
〈!--applet区域的尺寸--〉
[align = alignment]
〈!--applet的对齐方式--〉
[vspace = pixels] [hspace = pixels]
〈!--applet附近的留白--〉
〉
[〈param name = appletattribute1 value = value〉]
[〈param name = appletattribute2 value = value〉]
〈!-- param指定applet属性,applet用getparameter()方法来访问其属性--〉
……
[alternatehtml]
〈/applet〉
●三、嵌入对象
1. embed元素
embed元素允许将各种对象直接放入html网页:
〈embed src=”images/embed.shg”〉
embed元素可嵌入任何类型的文档对象,用户查看网页时,需要在自己的计算机上安装正确查看相应数据类型的应用程序。
如果指定对象的宽度和高度,则嵌入对象将改变尺寸以适应其空间大小:
〈embed src=“images/embed.shg” width=250 height=50〉
2. object元素
html中具有多种多媒体类型的元素和属性,为统一起见,w3c定义了object元素,使它既具有img元素的作用,又为处理各种不同的多媒体对象提供统一的解决方法,并能为网页中的对象初始化各种参数。
object元素的用法如下例,它在网页中插入label activex控件:
〈object classid=”clsid:{99b42120-6ec7-11cf-a6c7-00aa00a47dd2}”
id=lbl1
width=90
height=90〉
〈param name=”angle” value=”30″ 〉
〈param name=”alignment” value=”2″ 〉
〈param name=”backstyle” value=”0″ 〉
〈param name=”caption” value=”hello there”〉
〈param name=”fontname” value=”arial”〉
〈param name=”fontsize” value=”20″〉
〈param name=”fontbold” value=”1″〉
〈param name=”frcolor” value=”8421376″〉
〈/object〉
由于object元素被设计为媒体插入元素,因此它同img元素一样支持一些标准格式化属性,如height、width、align、border、hspace及vspace等。
●四、ssi
ssi是server side includes的缩写。它是这样一种技术,将它施加于html网页时,能够使网页增加一些实时功能,例如显示当前时间、进行逻辑条件比较、查询或更新数据库存或者发送e-mail等。
ssi是在不进行编程或加入cgi程序的情况下进行工作的。它仅需在html网页中插入一些特殊字符(称为ssi记号)。当网页经http服务器发送
到发出请求的客户端时,服务器在网页中扫描这些特殊的标记。一旦发现标记,服务器就解释标记中的数据,并将执行标记数据中指定的动作。
ssi是与http服务器相关的,并不是所有的服务器都能支持ssi。netscape和spry的web服务器能够支持。
一个ssi记号的基本格式为:
〈!- -#〈tag〉〈variable set〉 - -〉
其中,〈!--# 为起始符,ssi记号总是以此开头;〈tag〉 是一个ssi标记;〈variable
set〉是一个或多个变量及变量值,其格式为“变量名=”变量值””,变量值与 〈tag〉 有关,各种标记取值各不相同;--〉
为结束符,ssi记号总是以此结束。也就是说,ssi记号以html注释的形式出现,因而不支持ssi的服务器仅需简单地将其忽略即可。
日前使用的ssi已有所改进,称为ssi+。ssi+ 文档的文件扩展名为 .sht、.shtm或shtml。为了提高效率,web服务器仅在这些文件中扫描ssi+ 记号。
●五、cgi
cgi是扩展web服务器功能的一种接口,通过它可与访问web网页的用户进行交互。cgi扩展了服务器分析浏览器输入、并基于用户输入返回信息的能力。换个角度讲,cgi使得程序员编写与web服务器进行通信的程序更加简单。
通过这个公共网关接口,服务器可以向cgi程序发送信息,cgi程序也可以向服务器回送信息。cgi程序与服务器、客户机的关系及遵守的协议和标准如下图所示。
由此可见,cgi程序必须存储在http服务器所在的计算机上,它是http服务器的亲密伴侣,二者可以直接通信,cgi程序从http服务器动态接收数据,并把处理结果返回给服务器。因此,用户不能从浏览器直接执行cgi程序,而必须通过http服务器间接进行。