2010-09-27 23 views
8

Necesito hacer que mi sitio web sea más rápido en el lado del cliente. Me pregunto si mi excesiva manipulación de cookies con Javascript podría ralentizar el navegador. Utiliza el disco duro, que es el componente más lento de una computadora. En un disco duro severamente fragmentado, ¿podría la manipulación de cookies congelar el navegador?¿Escribir una cookie es muy lento en JS?

Está JS optimizando la escritura/lectura de cookies (almacenamiento en caché, etc.). ¿Podría aprovechar estas optimizaciones para mejorar mi sitio?

Reemplazar las cookies del lado del cliente con una base de datos del lado del servidor está fuera de cuestión porque mis servidores ya están sobrecargados.

+2

optimizaciones prematuras? Confío en que la cookie sea rápida, ya que la mayoría de las cookies son muy pequeñas por defecto. ¿Puedes explicar por qué crees que tus cookies afectarán negativamente el rendimiento? – jcolebrand

Respuesta

0

las cookies son parte de los encabezados de solicitud y respuesta, por lo que cargarlas significa cargar cada solicitud y respuesta. En segundo lugar, está limitado a un total de 50 cookies por dominio y 4k por cookie.En tercer lugar, muchos usuarios están absolutamente aterrorizados con las cookies y tienden a eliminarlas incluso si son inofensivas.

Debido a estos 3 motivos, los desarrolladores web rara vez los utilizan a menos que sea absolutamente necesario (es decir, tokens de sesión). Debido a que los desarrolladores web rara vez los usan, existen pocas "mejores prácticas" a su alrededor, y tienden a no llamar mucho la atención.

Me aseguraré de que en realidad está interactuando con las cookies que es el problema antes de abordarlo. La implementación es específica del navegador, por lo que probablemente verá resultados muy diferentes de esas pruebas según el navegador en el que lo pruebe.

+0

¿Por qué se envían las cookies al servidor? Mi código de servidor nunca usa cookies. Solo tengo acceso a las cookies en el lado de JS. Entonces, si cada usuario tiene 20 cookies, ¿las 20 se enviarán después de cada solicitud de servidor PHP? ¿¿¿Por qué??? ¿Hay alguna forma de desactivar el envío de cookies al servidor? – JoJo

11

Hay algunas maneras en que puede acelerar su página en el lado del cliente, aunque supongo que la reducción del uso de cookies solo ahorraría unos microsegundos en el mejor de los casos. Solo en general, asegúrese de que solo está guardando lo que necesita.

hay toneladas de otras optimizaciones que se pueden hacer sin embargo, tales como:

  • Sirviendo sus archivos como contenido gzip
  • Garantizar la mayor cantidad de su sitio es caché capaces
  • El uso de sprites CSS y la combinación de javascript + css para reducir las peticiones HTTP (reducirá la carga de su servidor también)
  • Si se minimizan su Javascript, CSS y hTML

Estos son todos métodos comprobados para reducir los tiempos de carga de la página.

Para obtener más información sobre cómo hacer que su página cargue más rápido, ¡obtenga el YSlow! plugin para firefox/firebug http://developer.yahoo.com/yslow/

+0

sí ... estoy bastante seguro de que sus problemas de tiempo de carga no tienen nada que ver con sus cookies –

+0

+1 todas buenas sugerencias. –

+0

para los tiempos de carga de la página genéricos, no creo que haya encontrado una herramienta mejor que https://chrome.google.com/extensions/detail/ognampngfcbddbfemdapefohjiobgbdl –

0

+1 para una buena pregunta, aunque con implicaciones aterradoras.

Todo lo hecho en exceso puede tener un impacto en el rendimiento, aunque este será marginal en casi cualquier caso. No conozco ninguna optimización realizada por JavaScript para leer/escribir cookies, pero los cachés de lectura/escritura de la mayoría de los controladores de disco deben suavizar esta E/S hasta el punto de la negligencia.

¿Por qué da miedo?

  1. cookies pueden tener limitaciones de tamaño/cantidad: http://support.microsoft.com/kb/306070 y http://en.wikipedia.org/wiki/HTTP_cookie

  2. Las cookies pueden ser manipulados, por lo que no son seguros (a menos que esté fuertemente cifrando los valores en ellos, que afecta al rendimiento de los cursos , y sigue siendo una mala idea).

  3. Las cookies a veces se desactivan.

Mencionó que su base de datos es lenta, pero agregar algunas variables de sesión no generará ninguna carga adicional en su base de datos. O intente manipular los datos del lado del cliente en la memoria, o incluso pasar algunas variables (información no segura, por supuesto) en la cadena de consulta.

0

La manipulación de cookies en sí misma no exigiría mucho rendimiento. Sin embargo, las cookies se etiquetarán a lo largo de algunas o todas sus solicitudes HTTP (tanto hacia arriba como hacia abajo) en función de la ruta y la configuración de dominio de sus cookies. Si tiene un kilobyte de cookies y realiza 10 solicitudes por página, básicamente está aumentando la carga de solicitud y respuesta en 10 kb cada una.

Consulte ServeFromCookielessDomain para obtener más información.