dynamic cacheable nav with js