《中国计算机报》出版日期: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服务器间接进行。