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 输出页。