What is the best practice to make sure the user only can take one action at a time?

I have a web application where a user can perform actions on rows of data. When an action is performed all other actions should be disabled until the action is done. Usually it takes < 1 sec for an action to be performed by the backend service, but that is not guaranteed. The UI should not allow any further actions until the last action is completed (mainly because some other action might become invalid to perform).

  1. Is it a good practice to "freeze" all actions (e.g. disabling all buttons) for that period?
  2. Should the button show that it is "Submitting" (or "Loading") or should it be in a central location on the page? My gut feeling tells me to have it tight to the button so the user has the context. Edit: I found this answer related to this, this answers my 2. question :)

Thanks in advance!