今天下午接到一个优化的任务,客户反映invite attendee to event 时,会有超时错误。我查了查代码,用的是cfloop,而且套用了3次。能不慢吗?!!
google一下,才知道cfscript 效率很好,(http://www.blue1000.com/bkhtml/2006-09/45939.htm).
<cfscript>
for(i = 1; i lte ArrayLen(oneAccsIdList); i++){
temp = oneAccsIdList[i];
for(j = 1 ; j lte ArrayLen(accommodationList); j++){
if(temp eq accommodationList[j]){
stay = 1;
break;
}else{
stay = 0;
}
}
for(j = 1 ; j lte ArrayLen(flightList); j++){
if(temp eq flightList[j]){
flight = "Y";
break;
}else{
flight = "N";
}
}
hasInvited = false;
for(j=1; j lte cnt_idInEvent.RecordCount; j++) {
if (temp == cnt_idInEvent["CNT_ID"][j])
{
hasInvited = true;
break;
}
}
if (!hasInvited){
saveDetailObject(0,
eventId,
attendeeRole,
"IVT",
stay,
flight,
temp,
"",
"",
"",
"",
"");
for(k = 1; k < checkSiteUser.recordCount; k++){
if (temp == checkSiteUser["CNTCT_ID"][k]){
if((checkSiteUser["CNFRMTN_STS"][k] eq "Y") && (checkSiteUser["ACCNT_STS"][k] eq "Active")){
sendInvEmailByContactId(temp,eventName,eventDate,eventEndDate,checkSiteUser["email"][k]);
}
}
}
}else{
if(message neq ""){
message = message&","&temp;
}else{
message = temp;
}
}
}
</cfscript>
请注意:cfscript 内不能有任何coldfusion 标签,eg.cfquery,cfif...
但是query.recordCount好用。
分享到:
相关推荐
它可以遍历数组元素,如`<cfloop array="#myArray#" index="i">...</cfloop>`,或者基于查询结果,如`<cfloop query="getUsers">...</cfloop>`。 4. **条件语句:, <cfelse> 和 ** 这些标签用于条件判断。`<cfif>`...
- `<cfloop>`:循环结构,包括数组循环、查询循环等。如: ```coldfusion <cfloop array="#myArray#" item="value"> Value: #value# </cfloop> ``` ### 3. 数据库交互标签 - `<cfstoredproc>`:调用存储...
例如,`<cfoutput>`用于显示变量的值,`<cfif>`和`<cfelse>`用于条件判断,`<cfloop>`用于循环控制。 2. **变量** 在CFML中,变量的声明无需特定关键字,直接使用`var`即可。例如,`var myVar = "Hello, World!";`...
如同其他编程语言,CFML包含条件语句(如`<cfif>`、`<cfelse>`、`<cfelseif>`)和循环语句(如`<cfloop>`)。这些用于根据特定条件执行代码或重复执行某部分代码。 5. 函数和方法: CFML提供了丰富的内置函数,如`...
2. **CFML语法**:CFML支持多种标签,如`<cfquery>`用于执行SQL查询,`<cfoutput>`用于输出数据,`<cfif>`和`<cfelse>`用于条件判断,`<cfloop>`用于循环。了解这些基本标签是学习ColdFusion的基础。 3. **数据库...
5. **<cfloop>** - 循环控制结构,包括基于索引、数组、集合和查询的循环,常用于迭代操作。 6. **** - 用于引入其他ColdFusion或HTML文件,实现代码复用和模块化。 7. **** - 发送电子邮件的标签,可以设置发件人...
- `<cfloop>`:类似于其他编程语言的循环结构,如for和while循环,可以遍历数组、集合或查询结果。 - `<cfif>`和`<cfelse>`:用于条件判断,根据指定条件执行不同的代码块。 - `<cfswitch>`和`<cfcase>`:提供多...