fixed bug: scripts were loaded repeatedly after pushState