teclado - javascript definicion
Orden de diseño: Firefox, IE o ambos? (12)
¿Hay algún sitio, referencia o perspectiva que pueda tener para áreas problemáticas específicas (entidades CSS, riesgos y diferencias específicas de JavaScript, etc.) y cómo evitarlas?
Un buen recurso para esto es el modo peculiar . El autor (Peter-Paul Koch, o PPK) tiene muchas tablas de compatibilidad para compatibilidad con CSS y JavaScript. También tiene artículos que tratan temas específicos y cómo escribir código entre navegadores.
No se ocupan de JavaScript, pero Position is Everything es un recurso valioso para los problemas de CSS (principalmente IE6).
Como otros han mencionado, solo uso jQuery para evitar estos problemas. Si hay algo que no admite, es bastante fácil escribir complementos personalizados.
Al codificar nuevos sitios pesados de javascript, ¿qué orden o navegador web codifica?
Puedo ver estos posibles pedidos, pero no estoy seguro de cuál me gusta más:
- Codifique primero y hágala funcionar bien, luego comience a probar con otros y corrija los errores a medida que avanzo.
- Esto permitirá el desarrollo más rápido (al menos con Firefox), pero he aprendido por experiencia que depurar IE con tantas cosas a la vez puede ser un problema.
- Código para ambos al mismo tiempo. En otras palabras, para cada característica nueva, asegúrese de que funciona con ambos navegadores antes de continuar.
- Parece que en realidad tomará más tiempo, así que tal vez haga varias funciones en Firefox y luego vaya a IE para repararlas.
Que hacen todos ustedes?
Editar 1: para responder a un par de respuestas aquí .: @JQuery uso: por alguna razón no esperaba este tipo de respuesta, sin embargo, ahora que esta parece ser la abrumadora respuesta aceptada, creo que debería contarle a todos un algunas cosas más sobre los detalles de mi aplicación. Esta es realmente la DynWeb para la que comencé otra pregunta, y mientras estoy desarrollando, gran parte del código importante parece requerir que use document.whatever () en lugar de cualquier función de JQuery o Prototype que pueda encontrar. Específicamente, al importar dinámicamente CSS cambiante, tengo que usar algunos similares a:
var cssid = document.all ? ''rules'' : ''cssRules''; //found this to take care of IE and Firefox
document.styleSheets[sheetIndex][cssid][cssRule].style[element] = value;
Y espero que tendré que continuar utilizando este tipo de codificación sin formato que actualmente no está respaldada por JQuery o Prototype en el futuro. Entonces, aunque normalmente aceptaría JQuery como respuesta, no puedo, ya que no es una solución para esta aplicación webapp en particular.
@Wedge y bigmattyh: como se supone que la aplicación web construye otras aplicaciones web, parte del criterio es que todo lo que se construya se vea y funcione funcionalmente igual en los buscadores que soporte (ahora mismo estoy pensando en Firefox e IE7 / 8 atm, tal vez más adelante). Entonces, como este es un problema más interesante (y mucho más complicado); ¿Hay algún sitio, referencia o perspectiva que pueda tener para áreas problemáticas específicas (entidades CSS, riesgos y diferencias específicas de JavaScript, etc.) y cómo evitarlas? Estoy casi seguro de que tendré que tener algún tipo de variable isIE
y simplemente realizar diferentes acciones basadas en eso, pero me gustaría evitarlo tanto como sea posible.
¡Gracias por tu aporte hasta ahora! Lo mantendré abierto durante el resto del día para ver lo que otros pueden decir, y aceptaré una respuesta en algún momento esta noche.
Codigo para ambos y escribo (o uso) capas de abstracción donde hay diferencias entre los navegadores. En mi humilde opinión, es mucho más fácil a largo plazo probar continuamente en una configuración multiplataforma. Esto me impide hacer algo que esté sintonizado en un navegador que simplemente no funcionará bien en el otro: descubrí muy temprano en el ciclo de desarrollo cuáles serían los problemas de compatibilidad.
Cuando realizo un pequeño cambio, primero podría hacerlo para un navegador, pero antes de considerar que esa característica o cambio debe completarse, debe funcionar al menos en Firefox e IE.
Creo que es mejor diseñar para Firefox pero, como otros, han mencionado que el JavaScript no es la parte más difícil, es el CSS, que es la parte difícil. Personalmente solía codificar FF e IE a la vez, pero considero que lleva más tiempo porque es probable que realices cambios importantes durante un ciclo de desarrollo, así que ni siquiera te molestes en codificar ambos a la vez, podría ser un esfuerzo desperdiciado.
Otra cosa a tener en cuenta al elegir el navegador para iniciar el desarrollo es si está más familiarizado con los estándares W3C o el IE "estándar" impuesto por su base de usuarios mayoritarios. Algo curioso sobre los estándares web, muchos sino la mayoría de los desarrolladores web no están contentos con el soporte de estándares de IE, pero al mismo tiempo cualquier código que IE soporte es el estándar real de la web.
Esta es una especie de pregunta capciosa. En mi opinión, debes trabajar en este orden:
1: Conforme a los estándares
Esto lo lleva más cerca de trabajar en cada navegador sin tener que probar contra cada navegador. Además, obtienes la enorme ventaja de que tu sitio debería funcionar con cualquier navegador nuevo que aparezca (Chrome es un buen ejemplo) siempre que esté bien hecho y que los estándares cumplan. También hace que sea más fácil modificar su sitio para que funcione en navegadores específicos porque la forma en que los navegadores populares se desvían del cumplimiento de los estándares es bien conocida.
2: soporte para los navegadores más usados (para su sitio)
Tenga en cuenta la distinción entre el uso del navegador en Internet y el uso del navegador en su sitio . En Internet en su conjunto, IE es el navegador más popular con Firefox en segundo lugar y Safari, Opera y Chrome ocupan la mayor parte del resto. Sin embargo, la demografía de los visitantes de su sitio puede convertir estos números al revés. En los sitios que atienden a un público más experto en tecnología, es común que Firefox sea el navegador dominante con IE en la minoría distintiva.
3: soporte de otros navegadores según sea necesario
Debe ser muy explícito sobre el hecho de que la compatibilidad del navegador es un costo operativo para su sitio, y debe decidir dónde trazar la línea. Dependiendo del propósito de su sitio y del modelo de negocio, puede estar bien admitir solo los navegadores más populares o incluso un subconjunto de ellos. Por otro lado, puede ser una preocupación empresarial vital respaldar todo bajo el sol, incluido IE5. Está bien tomar una decisión consciente de no admitir completamente todos los navegadores si cree que la relación costo / beneficio es demasiado alta como para justificarlo. De hecho, muchos de los sitios más populares en Internet no funcionan bien en navegadores antiguos y de nicho. Aunque debe esforzarse por hacer que su sitio siga siendo funcional en los navegadores menos populares, incluso si hay problemas graves de apariencia o usabilidad.
FireFox primero, luego IE. Si funciona en Firefox, es más probable que funcione en los otros navegadores que no sean IE, IE a veces requiere magia especial.
Primero hago IE, y luego agrego Firefox.
Mi experiencia es que una vez que funciona en IE, continúa funcionando en IE, y la pregunta de por qué algo no funciona en Firefox suele ser fácil de responder.
Primero, codifica Firefox, pero prueba con IE a medida que avanzas. Esto le permite corregir cualquier peculiaridad que pueda surgir. Es importante probar primero con Firefox porque es más compatible con los estándares. Debería aprender a escribir HTML / JS de la manera correcta. Arregle las cosas a medida que avanza para tener una mejor idea de cómo IE representa las cosas de manera diferente.
Es posible que no necesite probar con IE para cada función que agregue, pero pruebe lo suficiente para que los problemas no se acumulen uno encima del otro. Repita con otros navegadores / versiones de navegador para obtener una idea general de la compatibilidad de su sitio.
Si tiene en cuenta la cuota de mercado de los navegadores web, encontrará que IE y Firefox están en la parte superior y muy cerca el uno del otro, así que debe ponerlos a ambos en consideración, ya sea utilizando Javascritp entre navegadores como JQuery o vaya a su camino probando ambos.
Si tiene que codificar para IE6, la parte más frustrante es codificar CSS y HTML. jQuery y otras bibliotecas hacen que sea más fácil codificar el comportamiento, pero en general no se puede evitar el hecho de que IE6 tiene tantos problemas de renderizado que te golpearás la cabeza con frecuencia intentando hacer lo que Firefox , Safari y Opera hacen bien la primera vez.
Entonces, Javascript no es la parte más difícil. Tratar con HTML y CSS es. En mi experiencia, si trabajas con un diseño razonablemente interesante, es mejor que primero codifiques para IE y luego pruebas en Firefox. Probablemente no tengas que hacer muchos ajustes si primero haces IE, pero definitivamente tendrás que dedicar un tiempo a reajustar tu código para hacer que IE haga lo que quisieras, si solo codificas en Firefox. Es como repetirlo. Es un dolor. Entonces, es mejor hacerlo primero para que no pierdas demasiado tiempo.
Siempre pruebo en Firefox e IE7. Y luego corrige y falla para IE6 y otros navegadores.
Si funciona en Firefox seguramente funcionará en Opera, Safari, Chrome, etc. con solo algunos ajustes menores
Lo mismo ocurre con IE7 e IE6, si funciona en 7, no tomará demasiado para obtener una representación razonable en IE6
Normalmente utilizo Firefox como mi navegador de desarrollo principal debido a sus herramientas de depuración superiores y el código de forma muy gradual, escribo algunas líneas y pruebo varias veces por hora. Pero al menos cada una o dos horas me aseguro de que lo que estoy haciendo funcione en IE7 también.
Tan pronto como entro en un área donde IE7 causa problemas, empiezo a replantearme la forma en que lo estoy haciendo. En mi experiencia, las correcciones tienden a multiplicarse y a descontrolarse muy rápidamente. A menudo es mejor aceptar la derrota y seguir adelante con un diseño más simple.
Me han picado demasiado a menudo en el pasado al desarrollar algo que funciona perfectamente en Firefox solo para encontrar que necesita un replanteamiento completo para que funcione también en IE7, y viceversa. Puede tomar días para resolver y puede ser muy desalentador.
Para minimizar sus problemas ahora, y descender, trabaje con lo peor al mejor, en el tamaño de su existencia.
Editar: Si puede hacer lo siguiente teniendo en cuenta "cómo podría degradarse con elegancia a ie6 a través de elementos jQuery modificados, etc. ... podría ser un poco más claro ..."
Por lo tanto, hoy basado en Market Share, es:
1) IE 6
2) IE 7
3) Firefox
4) Safari, etc.
Casualmente, los principales problemas con los navegadores ocurren en ese orden también.
Esto significa que la mayoría de los problemas que enfrentarán los usuarios serán en ese orden y en esas proporciones.
En nuestro equipo, he prohibido las pruebas de desarrollo inicial en Firefox. Tiene que sobrevivir el eslabón más débil, no el más fuerte. Inhumano, lo sé, pero hemos reducido el retorno y la reparación de errores relacionados con los navegadores en un 80%, porque el 80% de los errores del navegador son IE. Sí, hay un montón de herramientas de depuración en Firefox que se pueden usar UNA VEZ que encontramos un problema en IE.
Por otro lado, agregamos funciones adicionales que son solo Firefox para recompensar a los usuarios de Firefox. Una simple verificación del tipo de navegador y se ocupa del resto.