[TASK] use history.replaceState instead of history.pushState to reduce the UA's history entrys