0

1) 我的 JavaScript 应用程序应该使用哪个 JavaScript hashchange/history library/method?
2)我如何使用该方法实现这三件事?

A)当页面加载时,我想解析 url 哈希/参数并设置初始应用程序状态。
具体来说,我的应用程序包含一个 Backbone 集合,其中包含两个模型,这些模型具有 selectedCountry、selectedYear 等属性。
(我认为我不能使用 Backbone.Router,因为这是一个非常定制的具有复杂状态的可视化应用程序?)

B)我想设置一个 hashchange 监听器或类似的监听器,让我相应地更新应用程序状态

C)在主干集合更改事件上,我想更新 url。重要提示:我想在执行此操作时暂时删除 hashchange 侦听器,以便没有反馈循环。

注意:该应用程序已经依赖于一些 HTML5 技术,因此该解决方案不必与旧版浏览器兼容……但是“反馈循环”部分很重要,因为我之前一直在努力解决这个问题……

谢谢 :)

4

1 回答 1

3

由于您已经在使用 Backbone,我会坚持使用 Backbone 的Router对象。使用您的应用程序中已有的东西会更容易,而不是尝试在组合中引入新的东西。

至于您的反馈循环问题,我通过从不触发我的路由器方法来解决这个问题 code

它的要点是我让我的 JavaScript 对象控制应用程序的状态,并为我完成工作。当我调用时,我从不作为第二个参数router.navigate传递。true我只调用router.navigate以响应我的应用程序中的状态更改,以更新浏览器窗口中的哈希片段。事情是这样的:这纯粹是对应用程序状态发生变化的响应。我从不router.navigate用来改变我的应用程序的状态。

希望有帮助

于 2011-10-14T13:59:42.883 回答