Compiling shaders is always a blocking operation for the browser. Usually what developers do is load/enable all their materials when the app starts, for a single frame.
That will force all materials to compile their shaders at the same time. Since it will happen as part of the app loading it won’t be that noticable.
Later on any model loading that uses those materials won’t lag/block the main thread.