2011-01-19 5 views
32

Entendemos que el hash es para búsquedas AJAX, ¿pero el signo de exclamación? ¿Nadie sabe?¿Por qué Twitter usa un hash y un signo de exclamación en las URL, y cómo reescriben las URL de búsqueda?

Además, el atributo "acción" para su formulario de búsqueda apunta a "/ buscar", pero cuando realiza una búsqueda, el signo de exclamación de hash aparece en la URL. ¿Están simplemente redirigiendo desde "/ search" a "/ #!/Search"?

Nota: la segunda parte de la q sigue sin respuesta: Es decir, ¿están redirigiendo al usuario de "/ búsqueda" a "!/#/Search", o ellos envían al usuario "/ búsqueda" y usa JS en la página para reescribir la URL? - Crashalot 26 de enero a las 23:51

Gracias!

+0

posible duplicado de [¿Cuál es el shebang/hashbang (#!) En Facebook y las nuevas URL de Twitter para?] (Http://stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook- and-new-twitter-urls-for) - al menos la primera parte de todos modos – BoltClock

Respuesta

9

Para responder la segunda parte, ¡entonces, lo está redirigiendo a/#!/Search.

Si nos fijamos en las cabeceras de respuesta cuando va a http://twitter.com/britishdev (conector de enchufe) se le devuelve un (redirección temporal) 302 con la cabecera Location establecer como "Lugar: http://twitter.com/#!/britishdev"

Si JavaScript está tirando toda su detalle en la página de destino, pero independientemente de que sea a donde se le redirige.

+10

¡¿Qué demonios fue que voté ?! – BritishDeveloper

+1

para el enchufe –

+2

ha ha. ah, te encanta el sentido del humor! – BritishDeveloper

30

Se ha convertido en el estándar de facto que Google ha establecido para garantizar la coherencia y hacer que las URL ajax puedan rastrearse.

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

Creo que están utilizando history.pushState. Puede hacer history.back() en la consola y lo llevará de regreso a la página.

+1

En realidad, me di cuenta de que la segunda parte de la pregunta sigue sin respuesta. Es decir, ¿están redireccionando al usuario de "/ search" a "/ #!/Search", o envían al usuario a "/ search" y usan JS en la página para volver a escribir la URL? – Crashalot

23

Sí, redirecciona con HTTP 302.

Por cierto, "!" se usa para eliminar el caso con un hash vacío. "http: // url #" hará que un navegador se deslice hacia arriba.

+1

Y también para esto http://code.google.com/web/ajaxcrawling/docs/getting-started.html – Ergec

Cuestiones relacionadas