gpt4 book ai didi

backbone.js - 页面加载后, Backbone 立即导航到基本 URL

转载 作者:行者123 更新时间:2023-12-04 02:51:28 24 4
gpt4 key购买 nike

我一直面临主干路由的这个问题,并认为我已经花了足够的时间调查:

这里有两个 url:/和/post/:id。/页面通过/post/:id 链接到各种帖子。当我单击帖子链接时,帖子页面会加载,但 Backbone 会立即将 url 更改为/。这不仅看起来很糟糕,而且还会在错误的时间触发路由处理程序。我没有做任何特别的事情......这是我的代码:

PostRouter = Backbone.Router.extend({
routes : {
"" : "doHome"
},
initialize : function() {

},
doHome : function() {
// do some stuff before navigating
window.location = "/";
}
})

...

var router = new PostRouter();
Backbone.history.start({ pushState: Modernizr.history });

同样,在帖子页面加载后立即调用 doHome 函数。显然,这会导致站点导航回主页。我显然可以删除对 window.location 的调用以防止这种情况发生,但 url 仍会更新为根 url,这是 Not Acceptable 。

提前致谢!

更新 1:

如果我直接转到“localhost:808/post/:id”,则 url 立即更改为“localhost:8080/”。但是,如果我在私有(private)浏览器窗口中执行完全相同的操作,则不会观察到这种行为。

更新 2:

鉴于我在更新 1 中发现的情况,我发疯了,从头开始:我清除了 4 周的浏览历史记录(叹气),停止本地服务器并清理所有持久 session 并重新部署我的应用程序。唉,它奏效了!也就是说,我没有将此列为解决方案,因为它无助于解释究竟发生了什么以及如何解决它。此外,这让我担心我网站的用户会发生这种情况。我无法告诉他们发生了这种情况,即使我这样做了,我也无法告诉他们如何最终修复它(清除 4 周的浏览器历史记录不是一种选择!)。任何人都可以对可能发生的事情有所了解吗?

最佳答案

你为什么不尝试添加

console.log(Backbone.history.handlers);

最后看看,你的溃败是如何添加到 Backbone.history 中的。这可能会有所启发。

关于backbone.js - 页面加载后, Backbone 立即导航到基本 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com