2

我在经典 ASP 中有 200 多个案例陈述,现在已经失控了。它根据选择的情况设置 5 个变量。地址、电话、姓名等。在每种情况下,只需设置变量即可。

数据库或文件不是此应用程序的选项。

来自 Perl 世界,我会使用散列来存储这些信息。

4

7 回答 7

3

失控?我觉得已经失控了!

您不能将案例分类为“x”一般区域并分解为辅助例程吗?

于 2008-09-08T16:55:47.027 回答
3

Brian,Perl 散列的经典 ASP 等价物是Scripting.Dictionary对象。

于 2008-09-08T17:18:34.133 回答
1

取决于你想要的性能。

case 语句很难看,但不会消耗需要分配的内存。

但是,您可以为您的字段创建一个类并将它们的实例加载到字典中。在 global.asp 脚本中执行此操作,使其只发生一次。将字典存储在全局 asp 集合中,以便它只分配一次,但与每个页面调用一起使用。

我很抱歉在这里没有说得太具体……已经有一段时间了。

于 2008-09-09T11:39:53.890 回答
1

很多人将 VBScript 用于 Classic ASP,但您可以在服务器上使用 JavaScript / JScript 作为替代方案。事实上,这是我在最终迁移到 .NET 之前执行 Classic ASP 的首选方式(除了在某些情况下,您必须在特殊情况下混合使用 VBScript,即 Disconnected Recordset、ExecuteNoRecords 等)。它将为您提供比 VBScript 更好的 OOP 支持。也许您可以尝试将其重构为之后的某种策略模式。值得研究,我想从长远来看可以更好地维护。

于 2008-09-09T17:26:18.053 回答
1

您无法将其迁移到数据库或文本文件这一事实有点问题,因为它们将是此类数据的最佳解决方案。但是,如果您必须在代码中包含它,您可以随时尝试将其放入您预定义的矩阵中。然后你可以提供一个函数来返回矩阵中给定行的数据。

于 2008-09-09T17:32:33.387 回答
0

这应该使用数据库来完成,但是由于您说这不是一个选项,因此您将编写的任何内容都不会比 switch 语句更复杂,因为它都必须存在于您的代码中(根据您的 no db 和没有文件)。

我的意思是,如果数据库的概念太复杂,您可以使用 Excel 电子表格,但从技术上讲,它也是一个文件!

于 2008-09-09T17:23:16.063 回答
0

脚本字典是恕我直言的最佳选择。

于 2008-09-13T05:14:39.820 回答