二十八条改善 ASP 性能和外观的技巧 19-28(From Ms China)

作者:袖梨 2022-07-02
技巧 19: 利用浏览器的验证功能
现今的浏览器对一些高级功能如 XML、DHTML、Java 小程序和远程数据服务提供支持。尽可能使用这些功能。所有这些技术都可以执行客户机端验证和数据缓存,免去了到 Web 服务器的往返。如果您在运行一个智能浏览器,那么浏览器就能为您进行一些验证(例如,在执行 POST 之前,检查信用卡校验和是否有效)。尽可能使用这一功能。通过减少客户-服务器之间的往返,可降低 Web 服务器上的负载,并能减少网络通信量(虽然发送到浏览器的第一个页面可能比较大)以及服务器访问的任何后端资源。此外,用户不必像住常一样读取新页,从而用户的感觉会好一些。这样做并不意味着您可以不进行服务器端验证 - 您还应始终进行服务器端验证。这可以防止由于某种原因(如黑客,或浏览器不运行客户机端验证例程)客户机产生错误的数据。
人们已经进行了大量的工作,开发“独立于浏览器”的 HTML。正是由于这种忧虑,开发人员不愿再使用流行的浏览器功能,但这些功能本可以改善性能。对于一些真正的高性能站点,必须关心浏览器“访问”问题,一个好的策略是优化页面,使其适应流行的浏览器。使用浏览器功能组件,可以在 ASP 中方便地检测到浏览器功能。Microsoft FrontPage 等工具有助于设计适合于浏览器和指定 HTML 版本的代码。参见 When is Better Worse?Weighing the Technology Trade-Offs,以了解更进一步的讨论。
 技巧 20:避免在循环语句中使用字符串串联
许多人在循环语句中建立一个字符串,如下所示:
s = ?? & vbCrLf
For Each fld in rs.Fields
s = s & ? ?
Next
While Not rs.EOF
s = s & vbCrLf & ? ?
For Each fld in rs.Fields
s = s & ? ?
Next
s = s & ? ?
rs.MoveNext
Wend
s = s & vbCrLf & ?
? & fld.Name & ?
? & fld.Value & ?
? & vbCrLf
Response.Write s
采用这种方法会出现一些问题。第一个问题是反复串联字符串需要花两次方的时间,更通俗地说,运行这种循环语句所花的时间与记录数乘以字段数所得值的平方成正比。举一个更简单的例子,就可以更清楚地说明这一问题。
s = ??
For i = Asc(?A?) to Asc(?Z?)
s = s & Chr(i)
Next
在第一次迭代中,您获得了一个字符的字符串 ?A?。在第二次迭代中,VBScript 必须重新分配字符串并将两个字符 (?AB?) 复制到 s 中。在第三次迭代中,它还必须再次重新分配 s 并将三个字符复制到 s 中。在 N 次(第 26 次)迭代中,它必须重新分配并将 N 个字符复制到 s 中。总共就是 1+2+3+...+N,即 N*(N+1)/2 次复制。

相关文章

精彩推荐