如何使用 Backbone 控制器提供页面服务

发布于 2024-11-10 14:38:15 字数 416 浏览 0 评论 0原文

Backbone 按以下方式在其控制器中定义路由。这是否意味着网站的每个页面都必须有它的副本?或者当用户到达第一页时必须加载每个脚本才能使其工作?

var Workspace = Backbone.Controller.extend({

  routes: {
    "help":                 "help",    // #help
    "search/:query":        "search",  // #search/kiwis
    "search/:query/p:page": "search"   // #search/kiwis/p7
  },
  help: function() {
    ...
  },
  search: function(query, page) {
    ...
  }
});

Backbone define routes in its Controller in the following fashion. Does this mean every page of the site must have a copy of it? Or that every script must be load when the user reach the first page to make it work?

var Workspace = Backbone.Controller.extend({

  routes: {
    "help":                 "help",    // #help
    "search/:query":        "search",  // #search/kiwis
    "search/:query/p:page": "search"   // #search/kiwis/p7
  },
  help: function() {
    ...
  },
  search: function(query, page) {
    ...
  }
});

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

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

发布评论

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

评论(1

明月松间行 2024-11-17 14:38:15

这是一个 hashbang 路由器,那些不是真实的页面。网址如下所示:

  • mysite/!#help
  • mysite/!#search/kiwis
  • 等。

它用于路由单页 Web 应用程序。因此,您只提供一个页面,然后通过从 JSON Web 服务获取数据来呈现其他页面。

Backbone.js 允许您路由到页面内客户端上的子页面。这意味着您可以将 URL 更改为可图书标记状态,并且当您重新加载页面时,backbone 将重新加载页面的该“部分”。

此路由只能在页面内部使用,不应跨越多个页面。

为此,您应该使用服务器端 MVC 框架。

  • CodeIgniter for PHP
  • Express for node.js
  • Rails for Ruby/Groovy
  • MVC for ASP.NET
  • Django for Python
  • 等。

It's a hashbang router, those's aren't real pages. The urls look like:

  • mysite/!#help
  • mysite/!#search/kiwis
  • etc.

It's used to route single page web apps. So you only serve one page and then render other pages by getting your data from a JSON web service.

Backbone.js allows you to route to sub pages on the client inside a page. This means you can change your URL to a book markable state and when you reload the page, backbone will reload that "section" of the page.

This routing should only be used inside a page and should not span across multiple pages.

You should be using your serverside MVC framework for that.

  • CodeIgniter for PHP
  • Express for node.js
  • Rails for Ruby/Groovy
  • MVC for ASP.NET
  • Django for Python
  • etc.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文