我在经典 ASP 中有 200 多个案例陈述,现在已经失控了。它根据选择的情况设置 5 个变量。地址、电话、姓名等。在每种情况下,只需设置变量即可。
数据库或文件不是此应用程序的选项。
来自 Perl 世界,我会使用散列来存储这些信息。
我在经典 ASP 中有 200 多个案例陈述,现在已经失控了。它根据选择的情况设置 5 个变量。地址、电话、姓名等。在每种情况下,只需设置变量即可。
数据库或文件不是此应用程序的选项。
来自 Perl 世界,我会使用散列来存储这些信息。
失控?我觉得已经失控了!
您不能将案例分类为“x”一般区域并分解为辅助例程吗?
Brian,Perl 散列的经典 ASP 等价物是Scripting.Dictionary对象。
取决于你想要的性能。
case 语句很难看,但不会消耗需要分配的内存。
但是,您可以为您的字段创建一个类并将它们的实例加载到字典中。在 global.asp 脚本中执行此操作,使其只发生一次。将字典存储在全局 asp 集合中,以便它只分配一次,但与每个页面调用一起使用。
我很抱歉在这里没有说得太具体……已经有一段时间了。
很多人将 VBScript 用于 Classic ASP,但您可以在服务器上使用 JavaScript / JScript 作为替代方案。事实上,这是我在最终迁移到 .NET 之前执行 Classic ASP 的首选方式(除了在某些情况下,您必须在特殊情况下混合使用 VBScript,即 Disconnected Recordset、ExecuteNoRecords 等)。它将为您提供比 VBScript 更好的 OOP 支持。也许您可以尝试将其重构为之后的某种策略模式。值得研究,我想从长远来看可以更好地维护。
您无法将其迁移到数据库或文本文件这一事实有点问题,因为它们将是此类数据的最佳解决方案。但是,如果您必须在代码中包含它,您可以随时尝试将其放入您预定义的矩阵中。然后你可以提供一个函数来返回矩阵中给定行的数据。
这应该使用数据库来完成,但是由于您说这不是一个选项,因此您将编写的任何内容都不会比 switch 语句更复杂,因为它都必须存在于您的代码中(根据您的 no db 和没有文件)。
我的意思是,如果数据库的概念太复杂,您可以使用 Excel 电子表格,但从技术上讲,它也是一个文件!
脚本字典是恕我直言的最佳选择。