2009-03-12 11 views
5

Muchas páginas web cargan todo su contenido para cambiar muy poca información.¿Por qué no simplemente usar ajax para las solicitudes de página para cargar el contenido de la página?

Ahora me gustaría saber por qué los desarrolladores no deberían simplemente usar ajax para las solicitudes de la página principal.

En mi propia página web, me gustaría desarrollar las principales peticiones en mi página web con solo ajax pero yo no conozco a ningún desventajas específicas con este enfoque.

¿Alguien tiene una idea de por qué alguien no debe usar ajax tanto?

Respuesta

1

Los usuarios más grandes son los que tienen JavaScript desactivado. Su sitio web simplemente no funcionará para ellos.

2

Te daré una muy buena razón.

Si desactivas javascript en el navegador, no funcionará.

13

Los motores de búsqueda, rastreadores/arañas, los navegadores sin Javascript, los lectores de pantalla y otros consumidores de que el contenido no va a ser muy feliz con él.

le puede proporcionar toneladas de comportamiento Ajax en la parte superior de su página web si ya apoyar la navegación del lado del servidor estándar para el contenido completo. Eche un vistazo a progressive enhancement (SO) y progressive enhancement (wiki).

+2

¿Cómo puede estar conforme con algo que ni siquiera se puede ver en el primer lugar? :) – Tyson

+0

Usted no será feliz porque su sitio web será SEO hostil. En general, son técnicas que mitiguen estos temas (para los sitios web ricos en Ajax o Flash) como protocolo de mapas de sitio, pero lo mejor que puede hacer por sí mismo y la web en general es diseñar el flujo de su sitio web en HTML puro! – cherouvim

0

Aparte de las respuestas ya publicadas, el uso de AJAX pueden tener efectos secundarios desagradables sobre el control del navegador, como el botón de parada no funciona.

6

La premisa en realidad es que con AJAX no es necesario volver a cargar la página total para actualizar un pequeño porcentaje de esa página web. Esto ahorra ancho de banda y suele ser mucho más rápido que volver a cargar toda la página.

Pero si está utilizando AJAX para cargar toda la página esto es, de hecho, contraproducente. Debe escribir rutinas personalizadas para tratar la devolución de llamada de los datos de AJAX. Es mucho trabajo extra por poco o ningún aumento en el rendimiento.

Regla general de dónde utilizar AJAX: Si su actualización> 50% de su página, simplemente vuelva a cargar, de lo contrario use AJAX.

+0

Además de las obvias razones enumeradas por cherouvim, esto es enorme - * no tiene sentido * – annakata

0

Una cosa es que desea que el contenido de tener una URL estática, usted quiere que la gente sea capaz de vincular a sus páginas, marcador ellos, etc.

Si todo está Ajaxified, esto podría ser difícil y/o tedioso

+0

Hay buenas bibliotecas para conseguir evitar este problema: http://code.google.com/p/reallysimplehistory/ –

0

Bueno, si quieres que AJAX cargue nuevas páginas, como funciona Gmail, sugiero que tus enlaces sean enlaces A HREF normales que apuntan a una verdadera URL de página de representación completa y también usan un evento onclick que detiene el intento en la carga normal del enlace y realice sus llamadas AJAX. El problema aquí es que harás casi una doble codificación a menos que lo armes muy bien.

De esta manera los enlaces normales no JS cargar la página completa, y la JS sólo llamadas de cargar las nuevas piezas o página. Esto significa que la indexación de araña también funciona nuevamente.

0

Bueno, siempre se puede añadir el evento onclick discretamente usando jQuery y detener la manipulación normal URL.

Ej:

HTML

<a id="ajaxify-this" href="my-working-url">Click me to do AJAXy stuff if you have javascript</a> 

continuación Javascript

$(document).ready(function() {  
    $("#ajaxify-this").click(function(e) { 
     updateContent(); // do something ajaxy with the page 
     return false; // stop the click from causing navigation 
    }) 
} 
+0

He resuelto el conflicto mejor ....;) $ (document) ready (function() { \t \t $ removeAttr ("href ") (" NAV.");. }); si js está activo, entonces jQuery desactivado el contenido href y puedo usar mis llamadas ajax ...: p –

+0

también se podría haber utilizado e.preventDefault(); insteas de falsa de retorno; – sabbour

0

sólo uso de JavaScript y EJS como motor de plantillas para mi propia pagina web. Un paso más cerca de SOFEA/SOUI.

Los motores de búsqueda, rastreadores/arañas, los navegadores sin Javascript, los lectores de pantalla no les gusta, a la derecha. Pero sigo la corriente principal;)

Cuestiones relacionadas