- If an Ajax request fails or times out, Orbeon Forms client-side code automatically resends it to the server.
- If the request fails multiple time, the delay between each retry is increased (up to a maximum delay). This is done not to overwhelm the server with lots of requests, in case a number of clients experience failures at the same time, and then all the retries reach the server around the same time, for instance because a connection is reestablished.
- Imagine an Ajax request makes its way to the server, is executed by the server producing some side effect (for instance updating a database), but the corresponding Ajax response fails to get back to the browser. In that case, you would like the browser to be able to resend the request, and the server to resend the Ajax response it produced earlier without executing it again. Lucky us: this is exactly what happens with Orbeon Forms 3.9.
- And as a bonus: the same retry mechanism also applies to file uploads.