2010-02-23 20 views
6

Digamos que tengo una página de "informe" que se puede personalizar a través de Javascript. Supongamos que tengo start_date, end_date y type ("simple" o "completo") que pueden modificarse. Ahora Quiero que la barra de direcciones contenga siempre un "enlace permanente" de la vista actual (personalizada), para que el usuario pueda copiarla fácilmente.Mejores prácticas de Permalink para las páginas de Ajax

Si me gustaría hacer esto sin Ajax, simplemente usaría algo como "/ report /? Fecha_inicial = 2010-01-01 & fecha_final = 2010-01-31 & type = lleno" como un enlace permanente. Pero como quiero actualizar la URL de Javascript, necesito usar los anclajes (#), de lo contrario, toda la página debería volver a cargarse.

¿Existe alguna mejor práctica para generar enlaces permanentes en este caso? Me gustaría ir con algo como "/ report/# start_date = 2010-01-01, end_date = 2010-01-31, type = full" y analizar esa cosa en Javascript. ¿Hay alguna forma mejor o más generalmente aceptada para tratar con esto?

Además, ¿hay alguna forma mejor de tratar con el lado de Javascript en lugar de simplemente analizar todo?

Gracias.

Respuesta

0

Si usted tiene un grupo de enlaces que apuntan a los recursos del dominio, la mejor manera de hacerlo es:

  • abandonan las direcciones URL, ya que son (con cadena de consulta como some/site?start=4&end=10)
  • complemento una clase a esos enlaces, que proporcionan un gancho para su javascript

    <a href=".." class="ajax">Some resource</a>

  • Plan en wh en el tipo de datos de respuesta van a producir (texto plano, XML, JSON, HTML)
  • hacen decisión backend si volver a página completa o una respuesta para el Ajax llamada
  • esta manera las páginas sean accesibles

Por ejemplo, en PHP se puede ver fácilmente en $ _SERVER variable y decidir si se debe devolver respuesta completa página o listos para respuesta ajax:

function isXmlHttpRequest() 
{ 
    return isset($_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) && 
     ($_SERVER[ 'HTTP_X_REQUESTED_WITH' ] == 'XMLHttpRequest'); 
} 

recursos página local

HTML como:

<a href="#first">First</a> 
<a href="#second>Second</a> 

<div id="first">lorem</div> 
<div id="second">ipsum</div> 

Usted no tiene que analizar nada, todo lo que tiene que hacer es simplemente para mostrar la correcta div con id, que va a tomar directamente de a[href] .. Esto es se considera una buena práctica, ya que su página permanece accesible incluso con JS desactivado.

+0

Lo siento, pero no veo cómo esto responde mi pregunta. Si mi pregunta no es lo suficientemente clara, por favor agregue algunos comentarios y ayúdeme a mejorarla. – ibz

+0

Marqué la parte más importante de mi pregunta en ** negrita ** (ahora).Supongo que se salteó eso, ya que su respuesta realmente no lo cubre. – ibz

Cuestiones relacionadas