IBM Books

Net.Data 管理与程序设计指南,OS/2、Windows NT 以及 UNIX 版

高级高速缓存:动态确定是否高速缓存

DTW_CACHE_PAGE() 从宏文件中的位置初启高速缓存。您通常将函数放在宏文件的开头,以获取 最佳性能并确保所有 HTML 都已高速缓存。

对于高级的高速缓存应用程序,当您需要在处理期间决定在某个特定点作高速缓存时,可以把 DTW_CACHE_PAGE() 函数 放在 HTML 输出段,而不是在宏文件的开始。 例如,您可能需要根据从查询或函数调用返回的行数来 作高速缓存决定。

例子:因为作高速缓存的决定依赖于 HTML 输出的期望尺寸, 所以把函数放在 HTML 块中

 % DEFINE { ...%}
 
...
 
%FUNCTION(DTW_SQL) count_rows(){
  select count(*) from customer
%REPORT{
%ROW{
  @DTW_ASSIGN(ALL_ROWS, V1)
%}
%}
%}
 
%FUNCTION(DTW_SQL) all_customers(){
  select * from customer
%}
 
%HTML(OUTPUT) {
  <html>
 <head>
 <title>This is the customer list
 </head>
<body>
 
@count_rows()
 
 %IF ($(ALL_ROWS) > "100")
 @DTW_CACHE_PAGE("mymacro.d2w", "http://www.mypage.org", "-1", status)
%ENDIF
 
@all_customers()
 
  </body>
  </html>
%}

在此例中,此页根据 HTML 输出的期望尺寸作高速缓存或检索。只有当数据库表格包含多于 100 行时,才认为 HTML 输出页是值得作高速缓存的。Net.Data 总是在执行这个宏之后,把 OUTPUT 块中的 文本(This is the customer list)发送给浏览器;此文本永不作高速缓存。跟在函数调 用后的行 (@count_rows()) 在满足 IF 块的条件时作高速缓存或检索。 两部分共同形 成一个完整的 Net.Data 输出页。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]