我有两个带有网址的基本页面
http://localhost:8000/page-a
和
http://localhost:8000/page-b
。
我正在使用html5 history api
并遵循this教程。
唯一的区别是我添加了数据的api端点,例如
http://localhost:8000/api/page-a
和
http://localhost:8000/api/page-b
,在pushState()
中。
我可以轻松地在历史记录中来回移动,但是在重新加载页面并来回移动时,window.popstate
不再触发。而是直接按照控制台中的说明导航到page-a
和page-b
。
在demo中,我重新加载了页面,但是仍然可以正常工作。这是因为必须使用AJAX提取数据吗? (但是在本教程中,它说AJAX很好)
编辑
我忘了提到页面是动态创建的(使用Django)。是因为页面的动态性质吗?
已解决
我应该添加http://localhost:8000/api/page-a/
之类的状态的网址。在页面重新加载时,Django始终将URL http://localhost:8000/page-a
解析为http://localhost:8000/page-a/
,因此当我单击“后退”按钮时,onpopstate
永远不会触发。只是个'/',花了我大约两天时间。