我在经典 ASP 中有 200 多个 case 语句,这些语句已经失控。它根据选择的情况设置 5 个变量。地址、电话、姓名等在每种情况下只设置变量而不做任何其他事情。

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

来自 Perl 世界的我会使用哈希来存储这些信息。

有帮助吗?

解决方案

Brian,Perl 哈希的经典 ASP 等价物是 脚本.字典 目的。

其他提示

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

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

取决于你想要什么性能。

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

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

我很抱歉在这里没有说得太具体......有一阵子了。

很多人使用 VBScript 来实现经典 ASP,但您可以在服务器上使用 JavaScript/JScript 作为替代方案。事实上,这是我在最终转向 .NET 之前执行经典 ASP 的首选方法(除了在某些情况下,您必须在特殊情况下混合使用 VBScript,即断开连接的记录集、ExecuteNoRecords 等)。与 VBScript 相比,它将为您提供更好的 OOP 支持。也许您可以稍后尝试将其重构为某种策略模式。我认为从长远来看,为了更好的维护,值得研究。

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

脚本字典是最好的选择 恕我直言.

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

我的意思是,如果您有这样的想法,您可以使用 Excel 电子表格 数据库 也是 复杂的 但从技术上讲,这也是一个文件!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top