I am wondering if the following would be a good technique to allow user to download files from the server in the below scenario:

Info about the scenario:

User logs into a system (HTML,JQuery and CSS, Javascript based), There is a Download button in the UI. Clicking on it triggers a backend Java Message based (JMS)process which uploads a file on the server. This process could take few minutes to an hour depending upon how long the back end process takes to generate CSV files and upload it onto a server.

Note:JMS can handle asynchronous requests from the U so I am not worried about browser freezing after first Download click.

Approach I am thinking:

1) Right now I am not sure how I am going to notify user once files are downloaded but let's say user clicks on the button and returns back after 30 minutes and let's say files are ready.

2) I am planning to show a new button(which could say Download files from here) after user logs back in after 30 minutes. Maybe I would hide the original Download button in this scenario. This new button will only appear if files are present on the server. Otherwise, I would keep showing the original Download button and maybe I could change the text of original Download button to Come back later as soon as user clicks on it.

Does the above approach sounds good or is there something better I could do. Any better ideas if anyone can share, that would be great.

Please let me know if I can answer any questions.Thanks

1 Answer 1


First improve the naming.

As a user if I see a download button, and the file does not immediately start downloading, i'm lodging a support request.

So that first "download" button is more accurately a "Request File" or "Generate File" button.

Secondly never assume that the user will stay interested.

They wanted it now, not tomorrow or in an hour. They have passed the ball into your court, so its now your job to show something is happening.

To that end, after clicking the "request/generate" button, open an "in progress" window/screen/pop-side/something somehow with progress bars and real "download" buttons to get completed requests. This way I can see how much longer I have to wait, and I can get stuff I previously requested.

Thirdly pass the ball back

When the job is completed it is still your job to notify them that it is done.

You could achieve that by changing an icon on the main UI, or by popping out a notification somewhere on the screen.

Alternately a nice addition would be to contact them via a messaging channel, like email or sms. Something simple with either the file as an attachment or a link to download it depending on the size/delivery method/goal/etc.

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.