Lotus Domino Web Access 客户机性能提高


编者注:为了从本文描述的性能提高中受益,我们建议您升级到 Lotus Notes/Domino 6.5.4。不过,对于那些签定了支持合约并且需要 Domino Web Access 6.5.3 hotfix 的客户,请与 IBM Lotus Support 联系来请求获得它。]

IBM Lotus Domino Web Access (DWA) 是 IBM 用来访问基于 Domino 的邮件文件的主要 Web 客户机,它通过使用动态 HTML (DHTML) 为 Microsoft Internet Explorer 和 Mozilla 浏览器提供了丰富的用户体验。作为一个 DHTML 应用程序,Domino Web Access 客户机的性能受到服务器性能、网络性能和客户机配置的制约。

将使用 Domino Web Access 6.5.3 hotfix (也包含在DWA 6.5.4 及其更高版本中)与使用不带 hotfix 的 DWA 6.5.3 的情况进行比较,Domino Web Access 将客户机的响应时间提高了 30% 到 40%(在低端机器上最为显着)。除了 hotfix 之外,还有其他一些管理员和用户可以用来提高性能的方法。但某一领域的性能提高可能会对另一领域产生意料不到的影响。为了作出正确的决策,您需要了解您可以进行的选择,以及您的决策可能带来的影响。

本文将展示 Domino Web Access 6.5.3 hotfix 所带来的性能影响。还将描述管理员和用户可以用来提高性能的一些设置,以及使用这些设置带来的预期结果。

Domino Web Access 的要求

Domino Web Access 用户访问其邮件文件的基本要求是:

用户必须有一个 Domino Web Access 邮件模板 (INOTESx.NTF)。推荐使用的模板是 Domino Web Access 6 (INOTES6.NTF)。
HTTP 服务器(Domino Web 服务器)任务必须在邮件文件所在的服务器上运行。
注意,用户可以用 INOTES6.NTF 替换其邮件文件的设计。在完成替换之后,他们可以通过 Web 浏览器访问其邮件文件,或者继续使用 Notes 客户机访问其邮件文件,不会损失任何功能。

Domino Web Access 的工作原理

Domino Web Access 使用以下这些组件:

Domino Web 服务器
用户的浏览器
Internet 口令
Domino Web 服务器存储用户的邮件数据库,该数据库中包含一些将显示的个人数据,比如消息、日历条目和视图等。用来显示该数据(HTML 和 JavaScript)的逻辑和表单是在一个公共表单数据库 (FORMS6.NSF) 以及 Web 服务器代码自身中维护的。所有用户都可以共享这个公共表单数据库和服务器代码。

当 Web 服务器接收到 Domino Web Access HTTP 请求时,将从公共表单数据库 (FORMS6.NSF) 中加载适当的表单,并使用来自用户邮件数据库的数据生成 HTTP 响应(如果有必要的话)。这些响应还可以拥有对其他元素的外部引用,这些元素包括样式表、脚本模块和图像。当 Web 浏览器接收响应时,它会通过加载 HTML 和所有嵌入式脚本引用来呈现页面。它还会触发额外请求来加载外部引用。许多外部引用是一些不会发生更改的 UI 设计元素。这些元素存储在浏览器的文件系统缓存中,因此,浏览器只需要通过网络下载一次这些元素即可。当浏览器需要重新加载这些元素时,它只需从自己的缓存中抓取这些元素的副本即可。一些机密内容,比如邮件消息的正文,是由服务器标记的,所以它们没有被缓存。


 

 

性能因素

对于任何 Web 应用程序,用户响应时间都取决于以下因素的综合:

客户机器的配置。
将请求从浏览器发送到 Web 服务器时使用的网络传输时间。
Web 服务器处理请求所花费的时间。
将响应从 Web 服务器发送到浏览器时使用的网络传输时间。
浏览器打开和处理响应所花费的时间。
在浏览器中呈现一个页面所需要的请求数量。
客户机器的配置

随着每个后续版本的发行,Domino Web Access 也在不断成长,并添加了一些新特性以及使用 JavaScript 技术创建的大量用户界面。同时,随着该产品的增长,客户机配置建议也在增加,以便支持所有这些特性。Domino Web Access 在低端机器上运行时不会出错,但这些机器上的性能可能无法提供满足您的消息传递解决方案所需要的性能级别。因此,就有了一个最低限度的客户机配置以及一个推荐的客户机配置。

最低限度的客户机配置
对于版本 6.5.3,推荐的最低限度的 Windows 客户机配置是 Pentium III、800 MHz、256 MB 系统。对于版本 6.5.3 性能 hotfix,Domino Web Access 可以适应的最低限度客户机配置是 400 MHz 和 128 MB RAM 系统。推荐的最低限度的 Linux 客户机配置是 Pentium III、500 MHz、192 MB 系统。

Domino 版本 模板 处理器速度 内存
5.0.8 - 6.0.1 INOTES5.NTF 600 MHz 128 MB
6.0.2 - 6.5.3 INOTES6.NTF 800 MHz 256 MB
Windows 上的 6.5.3 + Hotfix INOTES6.NTF 400 MHz 128 MB
Linux 上的 6.5.3 + Hotfix INOTES6.NTF 500 MHz 192 MB

推荐的客户机配置
对 Internet Explorer 6.0 和 Mozilla 上的 Domino Web Access 的推荐机器配置是 Pentium IV、1 GHz、512 MB 系统。

Web 服务器配置

尽管 Web 服务器配置是对 Domino Web Access 性能造成影响的一个因素,但配置问题还与可伸缩性、用户数量和网速有关。这些问题并不是特定于 Domino Web Access 的。您可以从几篇关于服务器可伸缩性和性能的文章中查找关于如何从 Web 服务器配置中获得更多内容的信息,这些文章可以从 Performance page on developerWorks: Lotus 中获得。


 

 

测试

为了测试性能,我们将使用 Lotus Domino 6.5.3 和安装了性能 hotfix 的 Lotus Domino 6.5.3 在 Internet Explorer 6.0 SP1 on Windows 2000 和 Mozilla 1.7 on SuSE Linux 上都进行 16 项最常见操作的测试。这些测试也是使用不同的客户机器配置执行的。实际生产响应时间将根据机器、内存量、网络负荷和速度、Web 服务器负荷和其他应用程序消耗的处理时间而有所不同。

测试方法

用来测量用户客户机响应时间的测试方法是为了模仿典型用户使用 Domino Web Access 的方式而设计的。客户端响应时间是使用计时表测量的。响应时间是用户发起一个给定操作到浏览器呈现出某个页面所需的总时间。

所有性能测试都由只包括 Domino 服务器和客户机器的网络上的一名用户执行的。这样做是为了努力减少网络负荷作为性能因素所带来的影响。此外,测试是使用 HTTP(而不是 HTTPS)执行的,没有启用 Lotus Instant Messaging 特性。响应时间在启用和不启用 GZIP 的情况下都可以测量。(关于 GZIP 的其他信息,请参阅本文后面关于 GZIP 压缩的那一部分。)

在测试之前,将清除浏览器的 Web 页面缓存。所有 16 项操作都被一次运行,以填充服务器和浏览器缓存。这样做是为了更近似地模拟典型用户使用 Domino Web Access 的方式。正如前面所描述的,在第一次执行某个操作时,Domino Web Access 将下载 JavaScript 库,然后由浏览器缓存这些库。缓存代码位于缓存中,即使在关闭浏览器之后,或者在重启系统之后,也可以重用它们。因此,在第二次执行该操作时,浏览器会使用 JavaScript 的缓存版。

每个操作都被执行了 5 次。响应时间是根据这些时间的平均值计算的。被测量的 16 项常见操作是:

打开 One Day 视图(带有 7 个日历条目)。
打开 One Week 视图(带有 22 个日历条目)。
打开 One Month 视图(带有 22 个日历条目 )。
打开 Inbox 视图(带有 100 条邮件消息)。
打开一条新的消息。
根据 Who Column 对 Inbox 进行归类。
向某人发送一条消息。
打开一条消息(23 KB)。
发送一个邀请。
创建一个没有历史记录的答复。
向三个人发送一个答复。
向某个人发送一条消息,该消息带有一个 70 KB 的附件。
向某个人发送一条消息,该消息带有一个 1 KB 的附件。
打开一个新的 Calendar 条目。
从 Inbox 中删除一条消息。
将一条消息从 Inbox 移动到一个文件夹中。
机器类型的影响

尽管带有 hotfix 的 Domino Web Access 可以预期地在低端机器上执行,但无可否认的是,更新、更强大的机器会带来更好的性能。尽管在低端机器上使用 GZIP 会导致性能稍微下降,但对于更高端的 3 GHz 机器而言,此影响可以忽略不计。

以下图表显示了带有 hotfix 的 DWA 6.5.3,在启用和不启用 GZIP 的情况下使用了轻量级 UI 性能增强。(注意:轻量级 UI 是标准 DWA UI 的缩减版,对于版本 6.5.3 hotfix,它的使用是随意的。有关的更多信息,请参阅本文后面部分的“轻量级用户界面”一节。)
图 1. 受 Internet Explorer 上的机器类型影响时的平均响应时间

点击查看大图



图 2. 受 Mozilla 上的机器类型影响时的平均响应时间




比较 6.5.3 和 6.5.3 以及 hotfix 的性能结果

为了在大多数极端情况下测试 DWA 6.5.3 hotfix 的性能,要在一些最低推荐机器上进行测量。使用带有标准 UI 的 DWA 6.5.3 中的响应时间作为基础,我们将使用标准 UI 的带有 hotfix 的 DWA 6.5.3 响应时间与使用轻量级 UI 的带有 hotfix 的 DWA 6.5.3 响应时间进行比较。Mozilla 1.7 中的响应时间在使用标准用户界面时提高了 41%,在使用轻量级用户界面时提高了 44%。Internet Explorer 中的响应时间在使用标准用户界面时提高了 42%,在使用轻量级用户界面时提高了 48%。关于轻量级用户界面的更多信息,请参阅本文后面部分的“轻量级用户界面”一节。

以下是在 400 MHz、128 MB 的客户机器上使用装有 Internet Explorer 6.0 SP 4 的 Microsoft Windows 2000 所获得的结果,以及在 500 MHz、192 MB 的客户机器上使用装有 Mozilla 1.7 浏览器的 SuSE Linux 所获得的结果。响应时间是以秒为单位进行测量的

Mozilla Internet Explorer
操作 6.5.3(标准 UI) 6.5.3 Hotfix(标准 UI) 6.5.3 Hotfix(轻量级 UI) 6.5.3(标准 UI) 6.5.3 Hotfix(标准 UI) 6.5.3 Hotfix(轻量级 UI)
打开 One Day 视图(带有 7 个条目) 8.07 5.05 4.69 4.86 3.91 2.86
打开 One Week 视图(带有 22 个条目) 7.33 4.73 4.49 5.56 3.86 3.27
打开 One Month 视图(带有 22 个条目) 10.37 7.93 7.26 7.92 4.45 3.52
打开 Inbox 视图 11.62 7.38 6.89 8.71 5.96 5.11
打开新消息 4.35 0.35 0.35 2.45 0.35 0.35
根据 Who 列对 Inbox 进行归类 5.33 3.14 3.08 3.48 2.41 2.39
向某一个人发送消息 2.69 2.27 2.16 1.92 1.58 1.54
打开邮件消息 5.25 0.89 0.87 3.79 0.94 0.92
发送邀请 5.64 4.57 4.57 3.81 1.01 0.98
创建没有历史记录的答复 4.48 3.76 3.62 3.11 2.61 2.57
向三个人发送答复 2.74 2.36 2.26 2.08 1.62 1.59
向某人发送带有 70 KB 附件的备忘录 3.03 2.51 2.39 2.28 1.81 1.76
向某人发送带有 1 KB 附件的备忘录 2.88 2.43 2.32 2.01 1.73 1.69
打开新的 Calendar 条目 7.54 0.35 0.35 5.81 0.35 0.35
从 Inbox 中删除备忘录 4.81 2.47 2.46 3.65 2.49 2.47
将某个备忘录移动到文件夹中 5.62 3.36 3.28 3.83 2.76 2.62
平均值 5.73 3.35 3.19 4.08 2.37 2.12

线路速度如何影响性能

如果更好的机器等于更好的性能是真的,那么同一说法无疑对网速也是成立的。如下表所示,网速慢可能会影响性能。管理员可以用来提高较慢网络的性能的一个方法是使用 GZIP 压缩。GZIP 是为了通过压缩数据提高较慢网络的速度而专门设计的,GZIP 对高速网络或封闭式网络的影响很小。此外,因为浏览器必须解压缩接收的数据,所以 GZIP 压缩可能会对较慢的机器(600 GHz 或更低)产生负面影响。如果有一个包括低端机器和低速网络的环境,那么使用 GZIP 可能会牺牲性能。网络时间改善了,但是客户机器上的响应时间在某些情况下可能会更慢。关于 GZIP 的更多信息,请参阅本文后面部分的“GZIP 压缩”一节。


图3. 受线路速度影响时的平均响应时间

提高终端用户性能的方法

除了使用 Domino Web Access 6.5.3 hotfix 实现的性能提高之外,还有其他许多设置,管理员和用户还可以使用这些设置从 Domino Web Access 性能中获得最大的收益。

管理员可以为图标创建 Web Site Rule。他们还可以启用或禁用 GZIP 压缩,并设置缓存清除的级别。通过使用 Notes.ini 设置,管理员还可以全局地应用轻量级用户界面,或重用子窗口特性。

用户还可以设置 Domino Web Access 参数选择来禁用拖放和就地编辑(in-place editing)功能,而且还可以选择重用子窗口(如果管理员无法全局启用该特性的话)。此外,还有用户可以设置的一些推荐的 Web 浏览器设置。要想快速查看日程安排,则可以使用 Summary Calendar 视图。

用于图标的 Web Site Rule

为了确保图标不被用户重复地检索,可以创建一个 Web Site Rule 文档。并且可以在使用 Web Site 文档配置宿主在 Domino 服务器上的 Web 站点时创建 Web Site Rule 文档。通过选择 HTTP 响应主题选项作为规则的类型,并指定它在传入的 URL 中包含字符串 /icons/* 时返回一个使用了 364 天的 Expires 标题,您可以为图标创建一个 Web Site Rule 文档。

图 4 显示了用于图标的 Web Site Rule 文档的一个示例。关于 Web Site Rule 文档的完整解释,请参阅关于 Web Servers in the Domino Administrator help 6.5 及其更高版本的那一部分。


图 4. Web Site Rule 文档的设置

GZIP 压缩

在开始使用 Domino Server 6.5 时,可以使用 GZIP 压缩来压缩发送到浏览器的响应。GZIP 在网络连接慢的情况下最有用,在这种情况下,数据传输耗用了用户等待将显示的页面所花费的大部分时间。不过,因为浏览器必须解压缩接收的数据,所以 GZIP 压缩在较慢的机器(600 MHz 或更低)上可能会对性能产生负面影响,因此,在判定是否使用它的时候,要权衡利弊。

在默认情况下,GZIP 是启用的,但也可以通过以下 Notes.ini 设置来禁用它:

iNotes_wa_GZIP_Disable=1
禁用该设置控制了针对整个服务器的响应。但是,如果您有一个既包括高端机器又包括低端机器的环境,那么使用低端机器的个别用户可以通过其浏览器设置来禁用 GZIP 压缩。在 Internet Explorer 中,可以通过选择 Tools - Internet Options 来禁用它。在 Advanced tab of the Internet Options 对话框中,请选择 HTTP 1.1 Settings 选项。在 Mozilla 中,可以在 Preferences - Advanced - HTTP Networking 对话框中找到用于您的浏览器的响应设置。

注意:禁用 HTTP 1.1 可能会带来比禁用 GZIP 更多的衍生物。

浏览器缓存管理

正如前面所描述的,在浏览器的文件系统缓存中,Domino Web Access 缓存了许多外部引用,比如 UI 设计元素。然后,在浏览器需要重新加载这些元素时,它只需从其自身的缓存中抓取这些元素的副本即可。

更好地调优性能的一个方法是,调整缓存清除的级别。在开始使用 Lotus Domino 6.5 时,管理员可以通过定义在缓存中保存哪些元素(样式表、静态代码、Web 页面、URL 等)来设置缓存清除的接别。对于某些管理员,他们甚至可能不愿意在缓存中保存那些静态元素。

Notes.ini 设置,即 iNotes_WA_LogoutScrubType,定义了 6 种不同的安全设置,从默认设置(保存一些来自邮件文件的设计信息)到最安全的选项(在退出的时候删除所有对 Domino Web Access 的追踪,并删除 Temporary Internet 文件夹中的其他所有 Web 页面)。使用该设置,可以在您想要的性能与您需要的安全性之间进行权衡。

下表显示了可以使用的缓存清除范围。从性能的观点来看,级别 3 和级别 5 是最不想要的级别,因为它们删除了公共表单数据库的内容。不过,在所有情况下,当用户退出系统时,都将从 Temporary Internet 文件夹中删除包含用户特定信息的页面

级别 描述
0 删除包含与邮件数据库相关的个人信息的缓存
1 删除所有与邮件数据库相关的缓存
2 删除与 Domino 服务器相关的缓存,Domino Web Access 模板除外
3 删除所有与 Domino 服务器相关的缓存
4 删除所有缓存,Domino Web Access 模板除外
5 删除所有缓存

关于浏览器缓存管理的更多信息,请参阅 Domino Administrator 帮助文件 6.5 版或更高版本的 Domino Web Access Mail 部分。

轻量级用户界面

从版本 6.5.3 hotfix 开始,有了一个新的轻量级皮肤,该皮肤既可以用于默认用户界面,又可以用于 WebSphere Portal 用户界面。通过从默认皮肤中删除尽可能多的 GIF 图像,由此产生的轻量级皮肤中的差异主要是装饰性的,并且只会稍微降低那些有识别能力的用户的艺术感受。图 5 显示了默认皮肤。


图 5. 有圆滑的边的默认皮肤

通常,在轻量级 UI 中,一些圆滑的边有一个正方形的外观(参见图 6)。在附签和按钮上,以及在围绕名称和标题的突出显示的地方,这是一种最常见的外观。此外,背景色是固定的,不是渐变的,滚动条已经添加到左边的面板中,所以,用户可以通过滚动来导航,而不用通过单击箭头导航。


图 6. 带有方形的边的轻量级皮肤

轻量级 UI 中丢失的惟一特性是,无法折叠左边的导航面板。图 7 比较了标准 UI 导航面板和轻量级 UI 面板。


图 7. 标准 UI 中的导航面板(左边)和轻量级滚动条(右边)

为了让所有 Domino Web Access 用户都能启用轻量级皮肤,需要将变量 iNotes_WA_UI=inotes_lite 添加到 Domino Web Access 服务器的 Notes.ini 文件中。或者,如果 Domino Web Access 用户正在使用 Portal UI,并且您想让他们使用新的轻量级皮肤,那么请将变量 iNotes_WA_UI=portal_lite 添加到 Domino Web Access 服务器的 Notes.ini 文件中。

对于那些通过 Domino Web Access Redirect(DWA 用户用来定位其邮件的一个方便特性)访问其邮件的用户,您可以修改 Domino Web Access Redirect 模板(IWAREDIR.NTF)。然后,可以将新的皮肤用作来自 Domino Web Access Redirect 页面的 Personal Option,假设在 Domino Web Access Redirect 中启用了 Personal Option。要启用 Domino Web Access Redirect 的轻量级皮肤,请执行以下操作:

  1. 从 Domino Designer 中打开 IWAREDIR.NTF 文件。
  2. 打开 WMRProfile 表单。
  3. 打开 WMRProfileURL 字段的属性,它是一个可编辑的组合框。
  4. 在 Control 附签中,将以下内容添加到可供选择的列表中:

    LiteUI | ?OpenDatabase%26amp;ui=iNotes_Lite

  5. 保存该表单并关闭 Domino Designer。
  6. 使用修改后的 IWAREDIR.NTF 模板来更新 Domino Web Access Redirect 数据库的设计。

同样,要启用 WebSphere Portal 的轻量级皮肤,请采用前面所述步骤,并将每个选项上的 %26amp;ui=portal 更改为 %26amp;ui=portal_lite。

重用子窗口

从 6.5.3 hotfix 开始,Domino Web Access 重用那些已经打开的窗口,所以可以缩短执行特定操作所花费的时间。而 Domino Web Access 重用的是 Read Message 窗口、New Message 窗口和 New Calendar Entry 窗口。重用这些子窗口可以提高某些最常使用的操作所花费的性能时间,这些操作包括读取和创建电子邮件消息,以及创建 Calendar 条目。

通过设置 Domino Web Access 参数选择,用户可以在个人基础上启用该选项。通过将以下 Notes.ini 设置添加到 Web 服务器的 Notes.ini 文件中,管理员可以在全局范围内支持重用子窗口。

iNotes_WA_ReuseChildWindows=1

在设置了该特性时,Domino Web Access 将缓存并随后重新使用部分没有更改的 Mail 和 Calendar 表单。例如,在打开一条消息时,Read Message 窗口将打开。Read Message 表单也被缓存,无需使用消息文本。然后,将使用该表单来显示同一窗口中打开的其他任何消息。这缩短了关闭第一个窗口的时间以及在新的窗口中打开后续消息的时间。

禁用拖放和就地编辑功能

为了提高 Calendar 视图中的响应时间,可以禁用 Domino Web Access Calendar Display 参数选择中的拖放功能。拖放功能允许您将一个约会拖动到一个新的时间。禁用这项参数选择也会禁用就地编辑功能,这项功能允许您单击某个预定的 Calendar 条目,并在视图中进行编辑,而不必在单独的窗口中打开该条目。

使用 Summarize 视图

另一个有用的性能特性是 Calendar Summarize 视图。Summarize 视图显示的是 Calendar 条目的总列表,而不是在一个网格中显示所有的时隙(time slots)。要使用总结特性(在任何 Calendar 视图中),请选择 View - Summarize。

检查 Web 浏览器的设置

通常,任何浏览器的最新支持版本都会提供最佳的性能。例如,Mozilla 1.7 天生就比 Mozilla 1.4 快。但也有许多可以用来提高 Domino Web Access 性能的其他设置。

Internet Explorer 设置
在 Internet Explorer 中,可以对 Domino Web Access 使用以下推荐的 Internet Options 设置。

  1. 选择 Tools - Internet 选项。
  2. 选择 General 附签。
  3. 单击 Temporary Internet 文件下的 Settings 按钮。
  4. 对于“Check for newer versions of stored pages”,请选择 Automatically 选项。
  5. 单击 OK 保存这些更改。
  6. 在 Internet 选项对话框中,选择 Advanced 附签,并确保没有选中以下这些设置:
    • 浏览 —— 使用平滑滚动。
    • 安全性 —— 在关闭浏览器时清空 Temporary Internet 文件。
    • 安全性 —— 不要将加密的页面保存到硬盘中。

Mozilla 设置
Domino Web Access 支持 Red Hat 和 SuSE Linux 上运行的 Mozilla 浏览器。有许多您可以用来调优 Mozilla 的配置值。使用您所喜爱的搜索引擎可以很容易地从网上获得这些配置值。搜索“Mozilla Tuning”就可以产生大量结果。

还可以使用浏览器设置 browser.cache.disk_cache_ssl=1(如果使用 HTTPS 访问 Domino Web Access 服务器的话)来提高 Domino Web Access 中的性能。

第三方加速器

Domino Web Access 还支持使用第三方加速器来提高 Domino Web Access 的性能,并通过减少网络带宽和提供 SSL 加速来提高可伸缩性。以下是这些产品的列表的一个示例。有关的更多信息,请与单独的供应商联系。

  • 可以从 FineGround 获得 FineGround Condenser/FineGround Velocity Appliance。
  • 可以从 Redline Networks 获得 T|X Web I/O Accelerator。
  • 可以从 Stampede Technologies, Inc. 获得 TurboGold Enterprise Edition。




结束语

正如这里的测试结果所显示的,Domino Web Access 的性能高度依赖于网络技术以及客户机和服务器。带有轻量级用户界面的版本 6.5.3 的新增特性将为您带来性能的提高,我们希望这里提供的建议能为您提供您可以使用的选项的更完整描述,并帮助您最好地配置您的系统,从 Domino Web Access 客户机中获得最大的好处。

致谢

没有 Jonathan Griep 和 Samir Patel 的贡献,将无法写出本文。还要感谢以下人士对本文所做的贡献:Vinod Seraphin、Dan Gurney、Dan Jamrog、Jack Ciejek 、John Immerman 和 Sheryl Jablonowski,感谢他们的帮助

关于作者

 

 Dana St. Clair 是 IBM/Lotus Software Group 的主要技术作者。Dana 于 2000 年加入 IBM。目前,她在为 Domino Web Access 和 Domino Access for Microsoft Outlook 编写客户和管理文档。Dana 过去所做的贡献包括规划和编写 Domino Administration 6.0 文档的几个部分。
 

 

本文作者:



相关阅读:
JavaScript Event学习第二章 Event浏览器兼容性
不唐突的JavaScript的七条准则整理收集
javascript实例教程(21-5)
小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法
VBS教程:方法-FolderExists 方法
javascript 节点排序 2
地址的加密实现方法
制作百毒不侵的Windows系统
RequisitePro安装和Oracle环境的部署
9个精简优化CSS文件的技巧
HTML特殊字符 - 补遗
在同一窗体中使用PHP来处理多个提交任务
Vista和Windows7系统WinSXS文件夹
mingw:在LINUX下编译WINDOWS程序
快速导航

Copyright © 2016 phpStudy |