hashbang
This article is a stub. You can help the IndieWeb wiki by expanding it.
A hashbang (or hash-bang fragment) is the character sequence #!
inside a URL, typically at the start of the path, including in post permalinks (like Twitter did 2010-2012), and is an antipattern you should never use as part of your personal site URL design.
Criticism
Fragile
Links into a site that start with a hashbang (or any similar single-page application "routing" string like /#/
) depend on there always being Javascript at the root of the site that can parse and recognize the link, and either display what it's supposed to show, or redirect to an actual permalink.
Thus as soon as the home page of a site changes, e.g. drops such scripted "routing", all hashbang URLs break and only show the home page.
Or if the Javascript on a home page fails to load, then hashbang links on a page will break (will not do anything when clicked):
"what happens on a slow network when users click an AJAX #!-link before the JS loads? nothing. slow net is like JS-off."
Examples:
- Twitter broke their own hashbang links, e.g. https://twitter.com/#!/search/realtime/%23microformats used to give # microformats hashtag results but now just redirects to their "explore" page.
Destructive to the web
- 2011-05-08 : It's About The Hashbangs (archived)
β¦it most definitely _is_ about the hashbangs. This technique, on its own, is destructive to the web. The implementation is inappropriate, even as a temporary measure or as a downgrade experience.
In General
See criticism noted on Wikipedia:
Consider extracting these into specific criticisms above or into new specific criticism subsections:
- 2011-02-09 : Gawker Learns the Hard Way Why βHash-Bangβ URLs are Evil (archived)
- ...
Abandonment
- 2012-05-29 Twitter dropped use of hashbang #! URLs: Improving performance on twitter.com
β¦ permalink URLs are now simpler: they no longer use the hashbang (#!).