I have an interface for data processing (standard CRUD). I'm going to connect a new action which will send a set of URLs to a linkchecking service. These sets can be between 50 and 20,000 URLs and as such can take as much as 20 minutes to have a response ready.
The response will be a full list of pass/fail and response time for each URL.

  1. What should I show the user when sending the request?
  2. What should I show the user while the request is being processed?
  3. How do I let the user know that it's completed?
  4. I may need to put this step into a liner workflow (this would be step 3 out of 5). What do I do with the user while processing the links in the service?
  • Can the user do other tasks, or navigate the UI when this is processing?
    – Mike M
    Commented Aug 3, 2021 at 22:46
  • @MikeM - I'm designing this now so I don't know. There are two uses of this system: The create-new-stuff flow where checking the links is a blocker step to the flow and the support-broken-stuff flow where checking the links is one of many actions taken to find the problem.
    – SAR622
    Commented Aug 4, 2021 at 7:08

1 Answer 1


The most important thing about your interface is not even how, but just the fact that something is happening during the waiting time. We all know systems where you press a button and then it says "Please wait" - and you don't know if you should still wait or if the thing has been stuck for half an hour. (To make a mockery of it, an animated GIF is then displayed that rotates enthusiastically while nothing else really happens…)

I would probably solve it like this: A single line that first displays "Request accepted", then while the requests are running "(1378/20000) Request www.example.org made, response in 130 ms". This can flicker; the important thing is that it actually shows the current task. If it hangs, it is immediately apparent exactly what it is doing. Finally, "(20000/20000) All requests processed", and in a new line the link "Download results as .csv file" and/or some statistics.

This is very easy to code, gives the user meaningful feedback and is useful in the event of an error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.