If you don't want to make the user wait for the delayed job to finish to do other things, then you'll have to periodically check for the completion of the delayed job (or the resulting zip file).
There are a few gems that handle some of the checking for you, or you can just use some javascript to call a controller action to check for the job results.
e.g.
$(document).ready(
function(){
setInterval(function(){
$('#div_id').load('/my_controller/action_to_look_for_result');
}, 5000);
});