6

Me gustaría saber cuáles son algunos inconvenientes al usar demasiado código JavaScript en una página web?¿Cuál es la desventaja de usar demasiado JavaScript?

Por ejemplo, voy a utilizar un framework jQuery para mis menús desplegables, pestañas y acordeón. Y otros JavaScripts para mi calendario (aunque, aunque hay un calendario disponible que usa jQuery) y otro JavaScript para otras cosas? ¿Cuál es el efecto? (Mi opinión es conflictiva de JavaScript y pesada para cargar)

Conozco a muchos desarrolladores que domina más de 2 frameworks de JavaScript. Mi pregunta es: al desarrollar un proyecto, ¿cómo eliges un marco de JavaScript para ese proyecto? ¿Por qué usarás MooTools o jQuery para ese proyecto? (Sé que es una cuestión de elección), pero ¿hay alguna otra razón? Al igual que los mootools es bueno para esto ... o jQuery es bueno para eso ...

Quiero escuchar su opinión.

Respuesta

9

¿Cuáles son algunas inconveniente utilizando a muchos archivos JavaScript en un sitio web?

  • sobrecarga HTTP
  • bajo mantenimiento

¿Por qué va a utilizar MooTools o jQuery para ese proyecto?

Esto no es sólo una cuestión de gusto personal. Consulte this question para más detalles.

Hay marcos específicos que hay para cosas específicas - Tome Ext JS por ejemplo, que trata de abarcar todo, necesita un sitio. Esto no es lo que hace jQuery.

+0

+1 para bajo mantenimiento – Davie

+0

"Bajo mantenimiento" ¡muy de acuerdo! "Mira esta pregunta para más detalles". Responde a la mayor parte de mi pregunta sobre marcos. Buena lectura. Gracias! – Pennf0lio

+0

@Davie: el inglés no es mi lengua materna. ¿Cuál es la redacción correcta? :) – roosteronacid

6

Dependerá en el navegador (y back-end) y cómo se realiza/escalas para muchos guiones. Al desarrollar una solución, piense primero en los requisitos de la audiencia. ¿Van a ejecutar monstruos de cuatro núcleos en enlaces de fibra óptica súper rápidos o pequeños teléfonos con enlaces GPRS? Luego, decida qué tecnologías cubrirán esas necesidades.

no se parte de la tecnología en primer lugar.

+2

Estoy de acuerdo en eso! "Piensa primero en los requisitos de la audiencia y no comiences primero con la tecnología". tu derecho ¡Gracias! – Pennf0lio

0

La respuesta es bastante obvia: más de JavaScript significa una mayor sobrecarga de rendimiento. Dependiendo de cómo se ha estructurado sus archivos, que podría significar más solicitudes HTTP, más datos para la carga, más código para analizar etc. Si es posible evitarlo, usted debe escoger un buen marco (como jQuery) y aferrarse a él, no mezclarlos y unirlos.

Rendimiento aparte, los marcos múltiples también significan menos código de mantenimiento, porque los mantenedores deben estar familiarizados con cada marco para poder trabajar con ellos.

Probablemente existan algunas excepciones, como utilizar un marco general como jQuery junto con uno más específico como Raphael, pero generalmente eso se resuelve con complementos.

2

Desde su pregunta, un par de problemas vienen a la mente:

  • Tener una gran cantidad de pequeños archivos de script puede ser un problema de rendimiento. Si vas a utilizar muchos scripts diferentes, combínalos en un archivo de script (y minify y sírvelo con compresión gzip). Hay una tip related to this en el wiki oficial script.aculo.us Prototipo & (divulgación: Sobre todo que escribí punta, pero con una gran cantidad de aportaciones de las personas más inteligentes). También vea si puede aprovechar los CDN (la mayoría de los marcos están ahora disponibles a través del the Google CDN, por ejemplo).
  • Tener muchos marcos diferentes (jQuery, Prototype, MooTools, YUI, etc.) en el mismo sitio puede convertirse en un problema de habilidades: cualquiera que trabaje en el sitio deberá tener habilidades en varios marcos diferentes.
  • Algunos marcos son incompatibles entre sí (por ejemplo, dudo que Prototype y MooTools puedan coexistir actualmente en una página; jQuery y Prototype pueden hacerlo a través del modo "sin conflicto" de jQuery).

En términos de elegir un solo marco, fíjese en lo que está tratando de hacer: algunos marcos se adaptarán mejor a algunos sitios que a otros. También observe los conjuntos de habilidades que sus desarrolladores ya tienen, ya que cuanto menos cosas nuevas tengan que aprender, más tiempo podrán dedicar a la construcción de su sitio. Mire a la comunidad alrededor del marco.Considere la disponibilidad de complementos (aunque hay muchos complementos de baja calidad disponibles, no juzgue solo por cantidad). Observe si la API del marco se adapta bien a su enfoque de las cosas.

2

yo diría que hay algunas posibles desventajas para el uso de múltiples bibliotecas: tiempo de carga

  1. inicial: hay que ser un poco cuidadoso sobre sus tamaños de archivo. Por ejemplo, si ese calendario que usa requiere una biblioteca independiente para funcionar, tiene que preguntar por qué no solo está usando la versión de jQuery.
  2. El rendimiento del cliente: estás la descarga de una gran cantidad de procesamiento en la computadora del cliente, y más máquinas/navegadores tendrá que luchar con scripting particularmente intensa. Sin embargo, esta es una cuestión de conocer a su público objetivo : si tiene para técnicos con la PC de monstruos, entonces es más probable que se aleje con secuencias de comandos pesadas.
  3. conflictos: como usted dice, no puede haber conflictos entre las funciones en bibliotecas diferentes. Hay formas en que puede solucionarse el problema , pero ¿por qué darse el problema de en primer lugar?

Al final del día, todas estas bibliotecas son solo una forma diferente de escribir JavaScript. Elija la biblioteca que funcione para usted; el que le permite hacer el trabajo más rápido y con el mínimo de errores.

+0

"Al final del día, todas estas bibliotecas son solo una forma diferente de escribir JavaScript. Seleccione la biblioteca que más le convenga, la que le permita realizar el trabajo más rápido y con el mínimo de errores" Gran consejo . ¡Gracias! – Pennf0lio

0

Un aspecto es que puede tomar tiempo cargar. Si tiene sus scripts en archivos incluidos o vinculados, eso lleva tiempo de carga y más solicitudes HTTP.

También, más scripts pueden ralentizar el equipo cliente. Muchos usuarios hoy en día tienen varias páginas o pestañas abiertas a la vez, y si la suya es tan pesada y lenta que tener otras páginas abiertas al mismo tiempo hace que las cosas no funcionen en una computadora de nivel base, entonces su sitio web es probablemente un poco excesivo.

Y, por último, lo que si el usuario no tiene javascript, o se ha desactivado? ¿Romperá por completo tu sitio?

0

Tampoco olvide que algunos usuarios pueden tener Javascript desactivado, por lo que tener algunas de las características requeridas del sitio web (es decir, menús, navegación, formularios, etc.) basado en JS dará como resultado que los usuarios no puedan ver su sitio .

+0

Gracias por la entrada, lo tendría en cuenta. – Pennf0lio

-1
  • Considere la situación en la que el 99% de su consumidor objetivo no tiene javascript habilitado en su navegador y escribe un código javascript pesado en su sitio web.
  • También JavaScript se ejecuta en la máquina cliente con una prioridad muy baja que puede ralentizar el rendimiento de su sitio web.

Y otro

  • todo el código JavaScript se expone como JavaScript es un lenguaje interpretado
+0

Estas son todas las desventajas de usar mal el JavaScript, no de usar mucho JavaScript. Actualmente estoy desarrollando y manteniendo JavaScript de producción para una subsidiaria de Viacom que tiene más de 2MB (sin incluir Dojo y Dijit) y se ejecuta perceptiblemente lo mismo en IE6-8, FF, Opera, Chrome y Safari. –

+0

, por supuesto, si se usa sabiamente, no hay absolutamente ninguna desventaja para javascript, pero para usarlo sabiamente, debe tener en cuenta TODAS las desventajas de la misma sin descuidar una sola, de lo contrario, hay posibilidades de error. – Xinus

0

El uso de una gran cantidad de archivos JavaScript no debería ser un problema ya que siempre puede fusionarlos todos juntos para minimizar las solicitudes HTTP. Por supuesto, para ejecutar todo ese JavaScript se necesita tiempo del navegador. También existe la posibilidad de que haya conflictos entre todas las bibliotecas/plugins de JS o dentro de DOM.

En cuanto a elegir la biblioteca correcta, realmente depende del tipo de sitio/aplicación que está realizando. Si solo quieres utilizar complementos prefabricados, no hay una gran diferencia entre la biblioteca que utilizas y solo debes elegir la que tenga más plugins que quieras usar y estoy seguro de que jQuery es el mejor aquí porque tiene la mayoría de los complementos en general.

Por otro lado, si desea escribir sus propios componentes/complementos/código, debe probar cada uno de ellos y ver cuál se adapta mejor a su estilo de codificación y proyecto. Por ejemplo, hace un tiempo encontré que Prototype se adapta mejor a mis gustos y es bastante bueno para grandes proyectos pesados ​​de JS. Pero jQuery ha recorrido un largo camino desde entonces, así que probablemente probaría cada una de las bibliotecas más populares si tuviera que hacer un nuevo proyecto.

2

Sobrecarga de red. No estoy hablando de los propios guiones, sino de lo que están haciendo:

Muchos complementos crean marcos para extraer contenido de sitios web de terceros: Facebook como botones, comentarios, Twitter feed, Google y varios tipos de anuncios , etc. Además, estos complementos también pueden cargar y ejecutar sus propias secuencias de comandos.

Incluso si tiene 8 núcleos, el contenido del sitio web está saltando durante al menos 30 segundos a medida que los complementos cargan su contenido (¡en cada visita a la página!). Es por eso que instalé plugins de navegador para bloquear javascript para siempre. Pero incluso si los habilito, es común que extraigan secuencias de comandos de al menos 20-30 dominios, y necesito habilitar todos los scripts en la página de 4 a 5 veces para que el sitio sea completamente funcional. Por favor evita crear situaciones como esta.

Cuestiones relacionadas