我在Coldfusion中有一个可以运行很长时间的循环;大约2-4分钟。
我想在每次循环运行时显示状态更新。
循环:
<cfloop index="i" from=1 to=70>
<cfset allHtmlFiles=getThirdXml.XmlRoot.XmlChildren[i].XmlChildren[1].XmlText>
<cfset ArrayAppend(seekurl, allHtmlFiles)>
</cfloop>
负责显示数据的循环:
<cfloop index="loopcount" from=1 to=92>
<cfset checkThisUrl = #seekurl[loopcount]#>
<cfset completeUrl ="http://myurl.com/?ids=#checkThisUrl#">
<cfhttp result="get" method="get" url="#completeUrl#">
<cfset nieuw =deserializeJSON( get.filecontent )>
<cfoutput>
<tr>
<cfif nieuw[checkThisUrl].id IS NOT 0>
<td>#nieuw[checkThisUrl].id#</td>
</cfif>
<cfif isDefined("nieuw[checkThisUrl].shares")>
<td style="text-align: right">#nieuw[checkThisUrl].shares#</td>
</cfif>
</tr>
</cfoutput>
</cfloop>
如何在每次运行时完成Ajax更新?
答案 0 :(得分:3)
我这样做的方式就是用数据库中的唯一ID(如UUID)编写进度。然后,您可以使用AJAX轮询不同的脚本来获取脚本的进度。
数据库表可能如下所示:
InsertedOn | Data | UUID
2011-02-12 13:01 | MyProcessData1 | MyUUID1
2011-02-12 13:02 | MyProcessData2 | MyUUID1
2011-02-12 13:03 | MyProcessData3 | MyUUID1
2011-02-12 13:10 | MyProcessData1 | MyUUID2
2011-02-12 13:11 | MyProcessData2 | MyUUID2
2011-02-12 13:12 | MyProcessData3 | MyUUID2
例如:
也许还有其他方法!
希望它有所帮助。 夏兰