我们知道JavaScript中很早就提供了window.history对象,利用history对象的forward()、Go()、back()方法能够方便实现不同页面之间的前进、后退等这种导航功能。但是AJAX操作,是不能用浏览器的前进和后退按钮进行导航的,因为浏览器并不会将AJAX操作加入到历史记录中。但是借助location.hash,我们能够自己实现AJAX操作的前进和后退。关于window.location.hash的详细介绍和使用方式,可以参考下面这2篇文章。
location.hash详解和 6 Things You Should Know About Fragment URLs。
我们需要知道以下2点:
1.如果location.hash发生了变化,那么浏览器地址栏url会发生变化,而且浏览器会产生1个历史记录。
2.如果location.hash发生了变化,会产生一个hashchange事件,我们可以处理这个事件。