我经常使用 Ajax (Jquery) 发送表单以在 ColdFusion 中进行处理。我将表单发送到 CFC,该 CFC 通过 Ajax 通知将结果和错误返回给用户。
表单可能非常大(想想带有额外输入的完整 HTML 页面)并且需要 CFC 中的大量逻辑才能正确处理,具体取决于表单中选择的选项。
因为 CFC 中的每个函数都可能很大(可能有 1200 行代码),所以我从 ColdFusion 中得到了可怕的“分支目标偏移量太大而不能短”的错误。为了解决这个问题,我将一些代码放入 .cfm 文件中,并用于<cfinclude>
将代码返回到“解决”问题的 cfc 中,但在尝试组织所有小片段以与特定 CFC 关联时,我感到很困惑。这也可能是一种低效的工作方式。
我想知道其他 ColdFusion 用户如何使用 CFC 构建/处理处理表单,这些 CFC 在将表单数据输入数据库时会做很多额外的事情。
我想到的一些选择是:
- 为没有太多代码的创建、更新、读取和删除操作创建“shell”函数
- 在 shell 函数
cfinclude
中,所有其他 .cfm 文件中的子函数的代码片段,以将代码保持在最低限度 - 或调用其他执行子功能的 CFC,并将表单变量作为参数传递给它们
上面的选项最终会让我拥有这样的结构(我不喜欢):
Article.cfc (CreateArticle, EditArticle etc)
CreateArticle_InsertImage.cfc
CreateArticle_ProcessBodytext.cfc
CreateArticle_InsertUser.cfc
CreateArticle_CheckIfExistingArticle.cfc
EditArticle_UpdateImage.cfc
EditArticle_UpdateBodytext.cfc
EditArticle_CheckIfExistingArticle.cfc
我最终会为每个函数创建一个新的 CFC,而不是它们本身就是类/对象。它们可能是 CFM 文件(并且可以使用<cfinclude>
,但这样做似乎很奇怪。有没有人知道的替代/更好/标准方式?