我有一个CFC,可以处理用户发布的帖子。一些处理涉及处理图像和文本,我要求另一个称为imagehandler.cfc
和(尚待制作)texthandler.cfc
的cfc来处理。
在我的post.cfc
中,当提供使用AJAX提交的封面图像时,我会进行以下调用:
<cfinvoke component="pathtofolder.imagehandler" method="CoverImage" argumentcollection="#VARIABLES#">
<cfinvokeargument name="Argument1" value="#SomeValue#" />
<cfinvokeargument name="Argument2" value="#SomeValue#" />
<cfinvokeargument name="Argument3" value="#SomeValue#" />
</cfinvoke>
然后,如果用户发布了任何嵌入式图像,则必须在第二个表单提交中使用AJAX来调用它:
<cfinvoke component="pathtofolder.imagehandler" method="InlineImage" argumentcollection="#VARIABLES#">
<cfinvokeargument name="Argument1" value="#SomeValue#" />
<cfinvokeargument name="Argument2" value="#SomeValue#" />
<cfinvokeargument name="Argument3" value="#SomeValue#" />
</cfinvoke>
如果提交了文本,我也必须称之为:
<cfinvoke component="pathtofolder.texthandler" method="PostText" argumentcollection="#VARIABLES#">
<cfinvokeargument name="Argument1" value="#SomeValue#" />
<cfinvokeargument name="Argument2" value="#SomeValue#" />
<cfinvokeargument name="Argument3" value="#SomeValue#" />
</cfinvoke>
以上所有操作都在一个帖子中进行,但是一天中可以提交成百上千的帖子。
以这种方式继续使用cfinvoke是否安全?我将把CFC放在APPLICATION范围内,但是该范围已经充满了经常使用的其他CFC的实例。我不能将其放在SESSION范围内,如果将其放在REQUEST范围内,则在为帖子进行部分提交(无论是第一个封面图像,然后是嵌入式图像,然后是文本等)之后,它还是会死掉。
有更好的方法吗?
答案 0 :(得分:-1)
这一切看起来太像打字了。移至<cfscript>
<cfscript>
// Do this once
obj = new pathtofolder.imagehandler();
...
// Do this lots of times
invoke(obj, "CoverImage", {
Argument1 : somevalue,
Argument2 : somevalue,
Argument3 : somevalue,
});
</cfscript>
有关在<cfscript>
中进行调用的更多详细信息,请访问:https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-in-k/invoke.html