在经典的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