Asana 如何处理没有 # 的 URL

发布于 2024-12-22 10:12:45 字数 184 浏览 0 评论 0原文

您可能已经看过 app.asana.com。 如果没有,你应该检查一下,这是一个设计非常好的网络应用程序。

但我不明白他们如何处理整个 URL 管理。 Backbone.js 或 Knockout.js 处理带有 # 的 URL,然后生成所有内容。

但是 asana 没有哈希并且可以修改 URL,他们是如何做到这一点的?

You may have seen app.asana.com.
If not you should check it out, it is a very nice designed webapp.

But I can't figure out how they handle the whole URL management.
Backbone.js or Knockout.js handles the URL with the #, and everything after that is just generated.

But asana doesn't have a hash and can modify the URL, how are they doing this?

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

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

发布评论

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

评论(2

晨敛清荷 2024-12-29 10:12:45

看起来他们正在使用 HTML5 history.pushState(); 因此他们不必刷新页面,因此他们不必使用 # (哈希)在 URL 中转至 Web 应用程序中的特定部分。

这是关于 history.pushState(); 的一个很好的教程:https:// developer.mozilla.org/en/DOM/Manipulated_the_browser_history

这是 Google+ 和 Facebook 用于在不刷新的情况下更改 URL 的方法。

我希望这有帮助。

Looks like they're using HTML5 history.pushState(); so they don't have to refresh the page and so they don't have to use # (hashes) in the URL to go to a certain part in a web app.

Here's a good tutorial about history.pushState();: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

This is the what Google+ and Facebook uses to change the URL without refreshing.

I hope this helps.

我的奇迹 2024-12-29 10:12:45

HTML5 推送状态:http://spoiledmilk.dk/blog /html5-change-the-browser-url-without-refreshing-page

这里的一大好处是,如果您将 Asana URL 直接粘贴到浏览器中(或单击电子邮件中的链接),服务器将看到完整的 URL 并可以立即将适当的任务数据发送到客户端。我们曾经使用 url 片段,但我们需要在应用程序加载后进行第二次往返,以读取 JavaScript 中的片段并将其传递到服务器。

HTML5 Push State: http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

The big benefit here is that if you paste an Asana URL directly into the browser (or click on a link from an email), the server sees the full URL and can immediately send the appropriate task data to the client. We used to use url fragments, but we needed to do a second round trip after the application loaded to read the fragment in JavaScript and pass it to the server.

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