How to display server answer waiting with a minimal visual difference to the interface

We have users complain to a visual difference between normal application view and waiting for a server response (that happens, actually, quite often, after pressing the button, changing the focus in the data grid, creating a new row, deleting a row, etc.). Time waiting is not so huge, up to 3 sec in most cases. The request is to avoid the visual difference (as far as this loading state appears quite often, it makes users irritated) but at the same time - to prevent any data from being changed (as while waiting the server respond, all application is not available for interactions). Can someone assume if it's possible - to lock data changing + not to have this overlay with a spinner? (The example shows the current realization)

enter image description here