作为ColdFusion开发人员,我从未使用过线程或异步编程模型(ajax除外)。 invokeCFClientFunction()是一个在cfclient中引入的新函数,用于异步调用coldfusion函数。但我对何时应该使用这个功能感到有点困惑。我从cfclient文档
运行了这个例子<cfClientSettings detectDevice=true />
<cfclient>
<cffunction access="public" name="showCanvasSupport" returntype="void" >
<cfset evalStr = "document.getElementById('canvas').innerHTML='"
& cfclient.canvas & "'">
<cfset eval(#evalStr#)>
</cffunction>
</cfclient>
Canvas support -<b id="canvas"></b><br>
<button onclick="invokeCFClientFunction('showCanvasSupport',null)">
Show canvas support
</button>
我使用invokeCFClientFunction()<button onclick="showCanvasSupport()">
打电话,它也正常工作。
所以任何想法我们应该在哪些情况下使用它?
答案 0 :(得分:2)
我向Adobe的一位工程师提出了同样的问题。这是博客解释一切, Why invokecfclientfunction?
答案 1 :(得分:0)
扭转它,迪帕克:你对这种或那种方式的期望是什么?一种方式不正常工作?这没有多大意义。
文档(“Synchronous and asynchronous function calls”)相当模糊,但您似乎还没有读过它们。因为关键部分 - 功能的存在理由 - 是:
如果从中调用异步ColdFusion函数 JavaScript,必须使用invokeCFClientFunction。
你正在调用一个函数 - showCanvasSupport()
- 它没有异步元素。所以:
invokeCFClientFunction()
?在我看来,你只是随意尝试代码,然后在你看不到它在做什么时挠头。为什么你甚至看这个功能?我不是说你不应该这样,但是你必须有理由把它放在你的代码中吗?