Обновление статуса цикла Colfdfusion Ajax - PullRequest
2 голосов
/ 14 февраля 2011

У меня есть цикл в 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 при каждом запуске?

1 Ответ

3 голосов
/ 14 февраля 2011

То, как я это сделал, это записать прогресс с уникальным идентификатором (например, 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

Например:

  1. Начать процесс, описанный выше, с помощью запроса AJAX.Запрос запустит приведенный выше код в виде потока (поэтому он немедленно вернется) и вернет значение UUID, представляющее запрос
  2. . Описанный выше процесс запишет прогресс в таблицу базы данных с UUID для каждой записи * 1013.*
  3. Опрос с использованием другого сценария с использованием AJAX каждые несколько секунд с использованием значения UUID для поиска прогресса на данный момент

Возможно, существуют и другие способы!

Надеюсь, это поможет.Киран

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...