【发布时间】:2014-02-02 15:30:31
【问题描述】:
我有大约 1 天的学习时间,直到我需要能够使用 Coldfusion(欢迎提供任何详细教程)。
我在 ColdFusion10\cfusion\wwwroot 中有 2 个文件(t1.cfm 和 progress.cfc)
t1.cfm:
<CFIF IsDefined("session.STATUS")>
<cfset StructDelete(Session, "Status") />
</CFIF>
<html>
<head>
<title>progressbar</title>
<script type="text/javascript">
function startprogress(barname){
ColdFusion.ProgressBar.show(barname);
ColdFusion.ProgressBar.start(barname);
}
function onFin(){
alert('Done');
}
</script>
</head>
<body>
<cfform>
<p>
<cfinput type="button" name="starter" value="start" onclick="startprogress('du')" />
<cfprogressbar name="du" duration="10000" interval="1000" width="200" oncomplete="onFin" />
</p>
<p>
<cfinput type="button" name="starter1" value="start" onclick="startprogress('du1')" />
<cfprogressbar name="du1" bind="cfc:progress.getstatus()" interval="1000" width="200" oncomplete="onFin" />
</p>
</cfform>
</body>
</html>
progress.cfc:
component output="false"
{
remote funktion getStatus(){
str = StructNew();
str.message = "blabla";
if(NOT IsDefined("session.STATUS")){
session.STATUS = 0.1;
Sleep(200);
}else if(session.STATUS LT 0.9){
session.STATUS =session.STATUS +.1;
Sleep(200);
}else{
str.message= "Done...";
session.STATUS=1.0;
}
str.status =session.STATUS;
return str;
}
}
当我打开t1.cfm 时,它会说:
找不到指定的 CFC 进度。 CFC 的路径必须指定为完整路径,或当前模板的相对路径,不使用映射。
我想问题出在bind="cfc:progress.getstatus()",但我遵循的教程做了完全相同的事情,并且在那里工作。我做错了什么?
【问题讨论】:
-
如果您是新手,请从更简单的开始。 Easycfm.com 有入门级教程。此外,当使用 cfc 时,请按此顺序执行操作。首先,让代码在 .cfm 文件中工作。然后让它在一个函数中工作,仍然在 .cfm 文件中。然后让它在 cfc 文件中工作,您可以使用诸如 createobject()、
或 之类的冷融合代码调用该文件。然后你就可以用 javascript/ajax 调用它了,这就是 bind 关键字的作用。 -
查看 www.learncfinaweek.com。这是一些最优秀的冷融合开发人员教授的冷融合。它们避免了您在那里使用的 CFUI 标签,因为它们在现实世界的情况下并不是特别有用。 Jquery 和其他技术更擅长创建 UI/UX 的东西。
标签: coldfusion statusbar cfc