SPA中的最佳实践:哈希与问号URL
我有一个单页应用程序。我刚刚意识到,如果我用查询方法替换我的Location.hash方法来更改状态,我就可以简化应用程序。并免费获取历史记录(后退按钮)。 (而不是监听onhashchange事件)
因此我的URL将从
http://.../spa.html#state={...}
http://.../spa.html?state={...}
缺点是从"#"改为"?"意味着页面被重新加载(这很好,因为状态是可检索的),但是,虽然我可以看到它,但可能需要更长的时间和/或闪烁。
这方面有什么最好的推荐吗?
解决方案
这就是SPA(或至少是其主要部分)的意义所在--通过不必重新加载页面来改善用户体验。无论如何,您都不会进行传统的预呈现文档交换,这意味着不支持JavaScript的代理已经不在考虑范围之内了。因此,在您的解决方案中,您是在牺牲主要的用户体验优势来换取代码中的微小简化。
相关文章