Backbone.js 中的 pushState 适合这个吗?

发布于 2025-01-01 14:23:27 字数 692 浏览 0 评论 0原文

我正在制作 Node.js/Backbone.js 应用程序,想知道我是否正确使用了 PushState。

我的应用程序从 http://localhost:8888/ 启动。我希望 Backbone 的路由器能够接收到它并在索引处执行一些操作。例如,在我的应用程序中,用户上传一个文件,然后 Node.js 将用户重定向到 http://localhost:8888 /废话/。此时,我希望 Backbone 的路由器选择该 URL 并执行某些操作。

起初,Backbone 除了 / 之外没有选择其他任何东西。我意识到 Backbone 当然会响应 /#something 等。所以我在启动时在 Backbone 的历史记录上设置了 PushState:true ,现在它似乎可以在用户处于说/或 Node.js 重定向时执行所需的不同操作他们到/等等/。

是这样吗?如果有效的话,保留吗?

我基本上希望根据用户所在的页面触发不同的 JavaScript。我过去常常使用 jQuery 来找到特定页面特有的元素,然后启动所需的代码。但那很脏。这似乎适用于Backbone的路由器,只要我在历史记录中使用pushState:true...但是是这样吗?

非常感谢,詹姆斯

I am making a Node.js/Backbone.js application and wonder if I'm using pushState correctly.

My app starts at http://localhost:8888/. I want Backbone's router to pick this up and do something at index. In my app, for example, the user uploads a file and then Node.js redirects the user to http://localhost:8888/blah/. At this point I want Backbone's router to pick that URL up and do something.

At first, Backbone wasn't picking anything other than / up. I realised that Backbone of course responds to /#something etc. So I set pushState:true on Backbone's history when starting and now it seems to pick up and do the different things needed when a user is at say / or when Node.js redirects them to /blah/.

Is that right? If it works, keep it?

I basically want different JavaScript firing depending on what page the user is on. I used to do it dirty with jQuery by finding an element unique to that particular page and then fire up the needed code. But that's very dirty. This seems to work with Backbone's router, as long as I use pushState:true in the history... But is that right?

Many thanks, James

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别挽留 2025-01-08 14:23:27

如果您想使用 Backbone(选择加入),则需要调用 PushState:true。如果浏览器不支持pushState,它将自动回退到使用URL 中的#。

关于路由器的描述,听起来是正确的。请记住,在没有看到代码的情况下很难完全了解。

最后,您可以让 Backbone 在“/”上运行路由,不会出现任何问题。

Backbone requires you call pushState:true if you want to use it (opt-in basis). It will fallback automatically to using the # in the URL, if the browser doesn't support pushState.

Regarding yoru description of the router, it sounds correct. Keep in mind, without seeing code it is tough to fully know.

Lastly, you can have Backbone run a route on '/' without any problems.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文