在經典的ASP(我不得不使用)中,我有幾個工廠函數,即返回類的函數 。我使用JScript。經典ASP應用範圍的初始化和對象緩存
在一個包含文件中,我使用這些工廠函數來創建一些在整個應用程序中使用的類。包含文件包含在所有頁面的#include指令中。
這些工廠函數做了一些「繁重工作」,我不希望它們在每個頁面加載時執行。
因此,要明確這一點我有這樣的事情:
// factory.inc
function make_class(arg1, arg2) {
function klass() {
//...
}
// ... Some heavy stuff
return klass;
}
// init.inc, included everywhere
<!-- #include FILE="factory.inc" -->
// ...
MyClass1 = make_class(myarg01, myarg02);
MyClass2 = make_class(myarg11, myarg12);
//...
我怎樣才能達到同樣的效果,而不在每個頁面加載調用make_class? 我知道
- 我不能在Application對象緩存類
- 我不能在Global.asa中使用Application_OnStart鉤
- 我大概可以創建一個腳本組件,但我真的不想那樣做
那麼,有什麼我可以做的嗎?也許有一些方法可以實現這些類的緩存,這些類實際上是JScript中的對象。
PS:[進一步說明]在上面的代碼中,「沉重的東西」並不是很重,但我只是想知道是否有辦法避免它一直執行。它讀取數據庫元信息,建立數據庫中主鍵的表格,以及將字符串解析爲類的另一個表格等。
這可以幫助http://stackoverflow.com/questions/1255980/implement-object-caching-in-classic-asp-memory-leaking – Castrohenge 2010-07-17 19:07:51