4.4 BrowserCapabilities浏览器性能组件

目前两种不同的网页浏览器NetScape和IE相继推出新的版本,不断扩大了两种HTML标准的分歧。这样给网站设计者带来了不小的麻烦,网站设计者不得不考虑到用户的浏览器,一旦使用了某一家的HTML扩展,那么就意味着失去了另外一家浏览器生产商的使用客户。这意味着很可能会失去相当数量的潜在访问者。

解决的办法就是使用BrowserCapabilities浏览器性能组件。当一个浏览器链接到Web服务器时,浏览器会自动将一串用户代理HTTP报头(User Agent HTTP Header)传送到服务器(该报头为一ASCII字符串,包含了该浏览器及其版本号),因此我们可以使用ASP的浏览器功能组件映射文件Browscap.ini创建一个BrowserType对象。该对象提供了带有客户端网络浏览器功能说明的用户脚本。通过访问BrowserType对象中的属性可以得到浏览器性能信息,借助BrowserType对象的属性来识别客户浏览器的不同性能,就可以设计出具有智能化的网页来。通常Browscap.ini文件放在Win98+PWS系统的Win-dows\System\Inetsrv目录下,或放在WinNT+IIS系统的WinNT\System32\Inetsrv目录下,用户可以编辑、修改文件。

4.4.1 BrowserCapabilities组件

为了要从“用户代理HTTP报头”得到客户端网络浏览器的信息,需要先创建BrowserCapabilities组件对象,然后再引用,从而将属性参数提取出来。其对象建立与属性引用代码如下:

默认的情况下,可以检测到的浏览器特性如下。

●Browser:顾名思义,就是浏览器类型,比如Internet Explore或者NetScape。

●Version:浏览器当前版本。

●Majorver:浏览器的主版本(小数点以前的)。

●Minorver:浏览器的辅版本(小数点以后的)。

●Frames:指示浏览器是否支持分屏方式。

●Tables:指示浏览器是否支持表格。

●Cookies:指示浏览器是否支持cookies。

●Backgroundsounds:指示浏览器是否支持<bgsound>标记。

●VBScript:指示浏览器是否支持客户端VBScripts脚本。

●JScripts:指示浏览器是否支持客户端JScripts脚本。

●JavaApplets:指示浏览器是否支持Java applets。

●ActiveXControls:指示浏览器是否支持客户端ActiveX控件。

●Beta:指示浏览器是否还是测试版。

●Platform:检测目前用户所用的操作平台,例如,Windows 98/XP或者Mac PowerPC。

●Win16:检测用户是在用16位的视窗(Win31)系列还是32位的视窗系列(Win98等)。

4.4.2 Browsercap.ini文件

其实浏览器性能组件是将接收到的Header与一个特定的文件Browsercap.ini进行比较,这个文件位于服务器,当安装ASP时被自动安装。Browercap.ini文件中列出的浏览器定义必须提供一个HTTP USER AGENT字符串,然后是属性和希望加入的值。一旦定义了浏览器,通过Parent属性可以继承该浏览器的属性。Browercap.ini列表的基本句法如下:

【例4.4.1】显示某浏览器的属性参数的程序代码。

程序的执行结果如图4.4.1所示。

图4.4.1 显示某浏览器的属性参数