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