preload & cache index.json