2

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

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

4

2 回答 2

2

I have asked the same question to one of the engineers from Adobe. Here is the blog explaining everything, Why invokecfclientfunction?

于 2014-04-21T06:27:47.240 回答
0

扭转局面,迪帕克:你的期望是什么?一方面它不能正常工作?这没有多大意义。

文档(“同步和异步函数调用”)相当模糊,但您似乎没有阅读它们。因为关键部分——函数存在的理由——是:

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

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

  1. 为什么你甚至试图首先使用invokeCFClientFunction()
  2. 你希望通过这样做达到什么目的?

在我看来,您只是在随意尝试代码,然后在看不到它在做什么时挠头。你为什么还要看这个功能?我并不是说您不应该这样做,但是您首先将其放入代码中一定是有原因的吗?

于 2014-04-19T12:54:36.813 回答