Backbone.history 如何保存状态并防止创建新集合?

How does Backbone.history save state and prevent new collections from being made?

我正在从这个 tutorial and it's source code can be found here 构建一个待办事项应用程序。

我的理解是,一旦你调用了Backbone.history.start(),脚本就会告诉浏览器将你访问过的所有页面都缓存在该页面的域内。每个页面的状态都保存到缓存中,并映射到 # 符号后面的 url。但是,当脚本每次调用 new app.TodoList() 时,它是如何解决的? 运行?每次此脚本 运行 时,这个新集合不会从缓存中替换旧集合吗?如果它在浏览器已经缓存的页面上,代码背后是否发生了一些事情告诉脚本不要 运行 new app.TodoList()

不,浏览器不会缓存页面或您的应用程序的状态以及历史记录。仅保存 URLs。然后,您可以使用路由器来监听 URL 更改并更新您的应用程序的状态。当您打开您的应用程序的 URL 时,返回和前进,这将在您的路由器中触发相应的路由回调,您将使用与路由相关的回调函数来更新您的应用程序的状态。