Before custom fonts are displayed, they need to be loaded first. There are three possible scenarios for font loading:
Scenario 1 only happens when you try to use a nonexisting font, or a declaration with a bad
src. This can and should be avoided entirely. Jumping to Scenario 3, it is the best case scenario and can usually be achieved through proper font caching. Scenario 2 is the scenario that involves font loading. Font loading is mostly unavoidable (at least for the first request instance). There are several ways to deal with it:
1. Flash of Unstyled Text (FOUT). A FOUT is an instance where a web page uses default and fallback fonts before switching to the proper web font. It happens because font requests do not happen until both HTML and CSS are downloaded. This means that there is a period of time where HTML is displayed before fonts are fully downloaded.
... read the whole story at typographyhandbook.com.