MVC大文件下载

I am using ASP.net MVC 4.0. I want to download a file after clicking a download button/a link. The problem is that the file is big and I want to show a 'wait image' while downloading. How do i do it? I am getting the file as a stream? Should I use HTPResposneMessage with web-api or FileStreamResult with MVC? The issue is I want to be notified when the download finishes.

My file is being downloaded with a code as below:

public FileStreamResult Download(Guid id)
{
.......
 return this.File(cab, "application/octet-stream", id + ".cab");
}

I want to show a spinner in javascript before beginning the download. My code is as follows:

self.IsDownloading(true);
var url = '/Download/' + id;                       
window.location = url;
self.IsDownloading(false);

But IsDownloading(false) is being executed before downloading the full file. How to make sure that it is done after the full file is downloaded?