什么时候应该使用invokeCFClientFunction()函数?

时间:2014-04-19 10:25:55

标签: coldfusion coldfusion-11 cfclient

作为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()">打电话,它也正常工作。

所以任何想法我们应该在哪些情况下使用它?

2 个答案:

答案 0 :(得分:2)

我向Adobe的一位工程师提出了同样的问题。这是博客解释一切, Why invokecfclientfunction?

答案 1 :(得分:0)

扭转它,迪帕克:你对这种或那种方式的期望是什么?一种方式正常工作?这没有多大意义。

文档(“Synchronous and asynchronous function calls”)相当模糊,但您似乎还没有读过它们。因为关键部分 - 功能的存在理由 - 是:

  

如果从中调用异步ColdFusion函数   JavaScript,必须使用invokeCFClientFunction。

你正在调用一个函数 - showCanvasSupport() - 它没有异步元素。所以:

  1. 你为什么甚至首先尝试使用invokeCFClientFunction()
  2. 你希望通过这样做达到什么目的?
  3. 在我看来,你只是随意尝试代码,然后在你看不到它在做什么时挠头。为什么你甚至看这个功能?我不是说你不应该这样,但是你必须有理由把它放在你的代码中吗?