gpt4 book ai didi

ajax - Coldfusion 循环状态更新 Ajax

转载 作者:行者123 更新时间:2023-12-04 06:34:56 25 4
gpt4 key购买 nike

我在 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 更新?

最佳答案

我这样做的方式是使用唯一 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

例如:
  • 使用 AJAX 请求启动上述过程。请求将启动上面的代码作为一个线程(所以它立即返回)并返回一个表示请求的 UUID 值
  • 上面描述的过程会将进度写入数据库表,每个条目带有 UUID
  • 每隔几秒使用 AJAX 使用不同的脚本使用 UUID 值进行轮询以查找到目前为止的进度

  • 然而,也许还有其他方法!

    希望能帮助到你。
    恰兰

    关于ajax - Coldfusion 循环状态更新 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4990523/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com