路由
在传统的由多个页面构成的网站中不存在路由的需求,那时通过链接进行跳转(导航)就能满足需求,但是随着Ajax和移动互联网的发展,单页应用越来越多,在单页(通过1个URL打开一个页面)中模拟多页面切换没有问题,但问题时怎样构造出一个能够通过URL实现“页面切换”并且这个URL还要满足可链接、可收藏、可分享的特性就成了一个有难度的技术问题。现在成熟的解决方案是利用url中的hash fragment来的变化来触发“页面切换”,这种将url(hash fragment)与“页面”映射起来的机制被称为路由(Router),路由中的关键技术是监听url(hash fragment)的变化,支持hashchange事件的浏览器很容易做到这一点,不支持hashchange事件的浏览器通常需要使用setInterval大概以100ms/次的频率轮询检查url的变化。很多应用框架都支持路由,如Backbone和Angular(除ngRouter外,还有uiRouter支持更强大的功能),另外还有很多支持路由功能的独立脚本库如:router.js、director.js等