There is a section “Refresh” which explains when and why refreshing is done. And also point to how to suppress refresh for a repository (that is imho most easily done through YaST > software > Repository Management where you see and can change automatic refreshing for each repo).
You will see there that a refresh is only done when not done already a short time ago. And also that it is only done when the downloading of only a few small files indicates that things have changes since your last refresh. Thus most of the overhead of needless refresh is already taken care of.
Please read that first and then come back with more precise questions if you have them.
FWIW: On an unreliable internet connection I would not even think of running Tumbleweed. The upgrades ( TW releasing over and over again ) can be really big, up to complete rebuilds of the release due to switch to new compiler(option)s f.e.
I think you can use Tumbleweed even on poor internet connections. You need to cache your downloads by using zypper dup --download-only. Repeat that command until your cache is consistent. Only then run zypper dup. Of course you need to provide sufficient disk space.