替换Classic ASP中的巨大Case语句

时间:2008-09-08 16:53:52

标签: asp-classic

我在Classic ASP中有200多个案例陈述失控。它根据选择的案例设置5个变量。地址,电话,姓名等。只是设置变量而不是每种情况。

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

来自Perl世界,我会使用哈希来存储此信息。

7 个答案:

答案 0 :(得分:3)

失去控制?我认为它已经失控了!

您是否可以将案例分类为“x”一般区域并拆分为帮助程序?

答案 1 :(得分:3)

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

答案 2 :(得分:1)

取决于您对性能的要求。

case语句很难看,但不占用需要分配的内存。

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

我的抱怨是因为这里没有太具体......已经有一段时间了。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

这应该用数据库来完成,但是因为你说这不是一个选项,所以你写的任何内容都不会比switch语句复杂,因为它们都需要存在于你的代码中(根据你的条款)没有数据库,没有文件)。

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

答案 6 :(得分:0)

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