1,801
การแก้ไข
| บรรทัดที่ 596: | บรรทัดที่ 596: | ||
=== Instacalc Routine === | === Instacalc Routine === | ||
The rough step-by-step working of an instacalc cycle is as follows: | |||
# Determine whether the invoked instacalc should be '''processed''' immediately, '''queued''', or '''dumped'''. | |||
# '''Send an instacalc ''POST'' request''' to the server. | |||
# Once a successfull instacalc response is received, '''fill the form''' with appropriate values/formatting. Then, run functions in '''post_insta_cmds''' attribute of the {{code|form_obj}} (if any). | |||
==== Process, Queue, or Dump ==== | |||
A single CuneiForm only handles one instacalc routine at a time. This behaviour necessitate a queue. Each invoked instacalc goes through these filters: | |||
# ''Check whether an instacalc with '''the same route''' is currently running or already in the queue''. (Instacalcs re-invoked from the queue get to skip this filter.) | |||
#* If yes, the invoked instacalc is dumped. | |||
# ''Check whether the CuneiForm is '''currently running another instacalc''''' (via flag '''populating'''). | |||
#* If yes, the invoked instacalc is queued. | |||
# For an instacalc re-invoked from the queue, ''check whether '''all the result fields are already handled by the most recent populate-type process'''''. | |||
#* If yes, the invoked instacalc is dumped. | |||
# All instacalcs reaching this point is processed. | |||
=== Navigation & Focusing === | === Navigation & Focusing === | ||