Why does Twitter use a hash and exclamation mark i

2020-01-31 01:09发布

We understand the hash is for AJAX searches, but the exclamation mark? Anyone know?

Also, the "action" attribute for their search form points to "/search," but when you conduct a search, the hash exclamation mark appears in the URL. Are they simply redirecting from "/search" to "/#!/search"?

Note: the second part of the q remains unanswered: That is, are they redirecting the user from "/search" to "/#!/search", or do they send the user to "/search" and use JS on the page to rewrite the URL? – Crashalot Jan 26 at 23:51

Thanks!

3条回答
smile是对你的礼貌
2楼-- · 2020-01-31 01:14

It's become the de facto standard that Google has established to ensure consistency and make ajax urls crawlable.

See http://code.google.com/web/ajaxcrawling/docs/getting-started.html

I believe they are using history.pushState. You can do history.back() in the console and it'll lead you back to the page.

查看更多
该账号已被封号
3楼-- · 2020-01-31 01:35

To answer the second part then: It is redirecting you to /#!/search.

If you look at the response headers when going to http://twitter.com/britishdev (plug plug) you are returned a 302 (temporary redirect) with the Location header set as "Location: http://twitter.com/#!/britishdev"

Yes JavaScript is then pulling all your detail in on the destination page but regardless that is where you are redirected to.

查看更多
相关推荐>>
4楼-- · 2020-01-31 01:35

Yes, it redirects with HTTP 302.

By the way, "!" is used to eliminate the case with an empty hash. "http://url#" will make a browser to slide to the top.

查看更多
登录 后发表回答