|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
技巧 19: 利用浏览器的验证功能 现今的浏览器对一些高级功能如 XML、DHTML、Java 小程序和远程数据服务提供支持。尽可能使用这些功能。所有这些技术都可以执行客户机端验证和数据缓存,免去了到 Web 服务器的来回。假如您在运行一个智能浏览器,那么浏览器就能为您进行一些验证(例如,在执行 POST 之前,检查信用卡校验和是否有效)。尽可能使用这一功能。通过减少客户-服务器之间的来回,可降低 Web 服务器上的负载,并能减少网络通信量(虽然发送到浏览器的第一个页面可能比较大)以及服务器访问的任何后端资源。此外,用户不必像住常相同读取新页,从而用户的感觉会好一些。这样做并不意味着您可以不进行服务器端验证 - 您还应始终进行服务器端验证。这可以防止由于某种原因(如黑客,或浏览器不运行客户机端验证例程)客户机产生错误的数据。人们已经进行了大量的工作,开发“独立于浏览器”的 HTML。正是由于这种忧虑,开发人员不愿再使用流行的浏览器功能,但这些功能本可以改善性能。对于一些真正的高性能站点,必须关心浏览器“访问”问题,一个好的策略是优化页面,使其适应流行的浏览器。使用浏览器功能组件,可以在 ASP 中方便地检测到浏览器功能。Microsoft FrontPage 等工具有助于设计适合于浏览器和指定 HTML 版本的代码。参见 When is Better Worse?Weighing the Technology Trade-Offs,以了解更进一步的讨论。 技巧 20:避免在循环语句中使用字符串串联 许多人在循环语句中建立一个字符串,如下所示: s = ?<table>? & vbCrLf For Each fld in rs.Fields s = s & ? <th>? & fld.Name & ?</th> ? Next While Not rs.EOF s = s & vbCrLf & ? <tr>? For Each fld in rs.Fields s = s & ? <td>? & fld.Value & ?</td> ? Next s = s & ? *lt;/tr>? rs.MoveNext Wend s = s & vbCrLf & ?</table>? & vbCrLf Response.Write s 采用这种方式会出现一些问题。第一个问题是反复串联字符串需要花两次方的时间,更通俗地说,运行这种循环语句所花的时间与记录数乘以字段数所得值的平方成正比。在将 ADO 记录集转变为 HTML 表的特定情况下,应考虑使用 GetRows 或 GetString。假如在 JScript 中串联字符串,特殊建议使用 += 运算符,即,使用 s += ?某字符串?,而不使用 s = s + ?某字符串?。 技巧 21:启用浏览器和代理缓存 在默认情况下,ASP 禁止在浏览器和代理中进行缓存。这是有意义的,因为就实质而言ASP 页面是动态的,上面有随时间不断变化的潜在信息。假如页面不要求在每个视图上进行刷新,您应启用浏览器和代理缓存。这可使浏览器和代理在一定的时间内使用页面的“缓存”副本,您可以控制时间的长短。缓存可以大大减轻服务器上的负载,缩短用户的等待时间。 哪一种动态页面可作为要缓存的页面呢? 注重,在使用浏览器或代理缓存的情况下,Web 服务器上记录的访问次数减少了。假如您想正确地测量所有页面视图或张帖宣布,您就不希望使用浏览器和代理缓存。浏览器缓存由 HTTP“过期”报头控制,该报头由 Web 服务器发送给浏览器。ASP 提供两个简朴的机制发送此报头。要设置页面使其过多少分钟后到期,则应设置 Response.Expires 属性。 技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect Response.Redirect 让浏览器哀求另一个页面。此函数常用来将用户重定向到一个登录Response.Redirect 让浏览器哀求另一个页面。此函数常用来将用户重定向到一个登录或错误页面。因为重定向强制哀求新页面,结果是浏览器必须到 Web 服务器来回两次,且 Web 服务器必须多处理一个哀求。IIS 5.0 引入了一个新的函数 Server.Transfer,它将执行转移到同一台服务器上的另一个 ASP 页。这样就避免多余的浏览器-Web-服务器的来回,从而改善了总体系统性能以及缩短了用户的响应时间。检查“重定向”中的“新的方向”,上面应该是 Server.Transfer 和 Server.Execute。 技巧 23:在目录 URL 中使用后斜杠 一个相关的技巧是确保在指向目录的 URL 中使用后斜杠 (/)。假如您省略了后斜杠,浏览器就会向服务器发出哀求,只是为了告诉服务器,它在哀求目录。浏览器就会发出第二个哀求,将斜杠附加到 URL 后面,只有此后,服务器才能以该目录的默认文档或目录列表(假如没有默认文档且启用了目录浏览的话)响应。附加斜杠可省去第一个、无用的住返。为便于用户阅读,可以省略显示名称中的后斜杠。 技巧 24:避免使用服务器变量 访问服务器变量会使 Web 站点向服务器发出一个特别哀求,并收集所有服务器变量,而不只是您哀求的那个变量。这种情况类似于,在发霉的阁楼上,在一个文件夹中查找某个文件。当您想要找那个文件时,您必须去阁楼上,先找到文件夹,然后才能找到这份个文件。当您想要找那个文件时,您必须去阁楼上,先找到文件夹,然后才能找到这份文件。当您哀求服务器变量时,发生的情况是相同的 - 您第一次哀求服务器变量时,就会使性能受到影响。后面的对其它服务器变量的哀求,则不会对性能产生影响。决不要访问非限定的 Request 对象(例如,Request("Data"))。对于不在 Request.Cookies、Request.Form、Request.QueryString 或 Request.ClientCertificate 中的项目,则隐式调用 Request.ServerVariables。Request.ServerVariables 集合比其它集合慢得多。 技巧 25:升级到最新和最精彩的 系统组件是恒定的,我们建议您将它们升级到最新和最好的配置。最好升级到 Windows 2000(因此,也应升级到 IIS 5.0、ADO 2.5、MSXML 2.5、Internet Explorer 5.0、VBScript 5.1 和 JScript 5.1)。在多处理器计算机上,实施 IIS 5.0 和 ADO 2.5 可显著改善性能。在 Windows 2000 下,ASP 可以很好地扩展到四个处理器或更多,而在IIS 4.0 下,ASP 的扩展性不能超出两个处理器。在应用程序中使用的脚本代码和 ADO 越多,升级到 Windows 2000 之后,性能的改善就会越多。假如目前还不能升级到 Windows 2000,您可以升级到 SQL Server、ADO、VBScript 和JScript、MSXML、Internet Explorer 和 NT 4 Service Packs 的最新版本。它们均可提高性能和可靠性。 技巧 26:优化 Web 服务器 有多种 IIS 优化参数可以改善站点性能。例如,对于 IIS 4.0,我们经常发现,增加ASP ProcessorThreadMax 参数(参见 IIS 文档)可以显著改善性能,特殊是在倾向于等待后端资源(如数据库)或其它中间产品(如屏幕刷)的站点上。在 IIS 5.0 中,您可能发现启用 ASP Thread Gating 比查找一个 AspProcessorThreadMax 最佳设置效率更高,这一点现在已为大家所熟知。 最佳的配置设置取决于(其中一些因素)应用程序代码、运行所在的系统硬件和客户机工作负荷。找到最佳设置的唯一方式是进行性能测试. 技巧 27:进行性能测试 正如我们在前面已经讲过,性能是一个特征。假如您想要改善站点的性能,那么就制定一个性能目标,然后逐步改进,直到达到目标为止。不要,就不进行任何性能测试。通常,在项目结束时,再作必需的结构调整已经为时太晚,您的客户将为此感到失望。将性能测试作为您日常测试的一部分来进行。可以对单个组件分别进行性能测试,如针对ASP 页或 COM 对象,或将站点作为一个整体来测试。许多人使用单个浏览器哀求页面,来测试 Web 站点的性能。这样做就会给您一个感觉,即站点的响应能力很好,但这样做实际上并不能告诉您在负载条件下站点的性能如何。 一般情况下,要想正确地测试性能,您需要一个专门的测试环境。此环境应包括硬件,其处理器速度、处理器数量、内存、磁盘、网络配置等方面与生产环境的硬件相似。其次,您必须指定客户机的工作负荷:有多少同时的用户,他们发出哀求的频率,他们点击页面的类型等等。假如您没有站点实际使用情况的数据,您必须估计一下使用的情况。最后,您需要一个可以模仿预期客户机工作负荷的工具。有了这些工具,您就可以开始回答诸如“假如我有 N 个同时的用户,那么需要多少服务器?”之类的问题。您还可以找出出现瓶颈的原因,并以此为目标进行优化。 返回类别: 教程 上一教程: .NET让新一代因特网变成现实(2) 下一教程: 直接显示"Monday"等星期的ASP语句 您可以阅读与"改善ASP性能和外观的技巧集锦(下)"相关的教程: · 改善ASP性能和外观的技巧集锦 · 二十八条改善 ASP 性能和外观的技巧(15-21) · 二十八条改善 ASP 性能和外观的技巧(8-14) · 二十八条改善 ASP 性能和外观的技巧(1-7) · ASP技巧集锦(官方权威版)-5 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |