I have a PHP-based web application that monitors the status of a process and displays a page with that status. Users can click a button on the page to update the status. However
To do this pure javascript, you can simply capture the click event, disable the button and enable it again after a timeout, the below code is using jQuery and assuming your button has an id 'button' ( or if it is an input: Click!)
You say the progress is quite heavy, note that even though people can not press the button more then once a minute (if they have javascript enabled that is) they can still disable javascript and press the button as much as they want, or call the url directly as many times as they feel like.
EDIT Added full HTML to script