use history#pushState and history#popState. close #315