0

好的,所以我有一个旧的 ASP Classic 网站。我已经确定我可以通过每天缓存数据来减少大量的数据库调用。我们的站点数据是只读的,并且变化非常缓慢。我认为根据我们的网站使用情况,我可以通过查询字符串为每天的每次访问缓存页面,而不会影响我们的服务器。

我的第一个想法是使用输出缓存,但我马上发现的问题是直到生成第三页请求时我才获得任何性能。我使用 SQL 探查器验证了这一点,但我不确定为什么。

我的第二个想法是从http://www.4guysfromrolla.com/webtech/032002-1.shtml添加这个 ObjPageCache 包含文件经过一些研究后,我发现这可能会导致比它解决的问题更多的问题http://support.microsoft .com/kb/316451

我希望这里有人会告诉我,自 2002 年以来,向同一服务器发送 ServerXMLHTTP 或 WinHTTP 请求的问题已由 Microsoft 解决。

4

1 回答 1

0

根据数据的维护方式,您可以从多种缓存方式中进行选择。

如果您的数据被更改并保存在一个地方,您可以选择生成一个 html 文件,将其保存到服务器磁盘并在链接中引用。但是,这将需要对运行您的站点的进程进行写访问(例如网络服务)。这将生成快速页面,因为服务器在不涉及任何脚本引擎的情况下为这些页面提供服务。

另一种选择是将数据读取到存储在 Application 对象中的 DomDocument 中,并在需要它的页面上引用(因此将往返保存到数据库)。您可以将两个时间戳与缓存数据一起保存(一个用于缓存时间,一个用于数据库中数据更改的时间)。时间戳将允许快速检查缓存数据的陈旧性:缓存时间戳 <> 数据库时间戳 => 刷新数据;否则使用缓存数据。关于这种方法需要注意的一点是,应用程序不接受多线程对象以外的对象,因此您必须使用 MSXML2.FreeThreadedDomDocument.6.0

就我个人而言,我更喜欢最后一个,因为它允许更动态的使用,而且我不必担心运行我的站点的进程的写访问权限(无论如何这可能会带来安全风险)。

于 2012-10-11T20:49:20.050 回答