¿Cuál es la diferencia entre la aplicación h5 y la aplicación nativa?
2. Es problemático implementar actualizaciones en caliente usando el SDK de iOS. Es fácil para un foro buscar este módulo y modificarlo, lo cual es un dolor de cabeza, por lo que H5 es perfecto para ello. Especialmente cuando la aplicación abarca Android e iOS, este módulo será muy útil si usa H5 directamente.
La brecha entre el desarrollo de aplicaciones web H5 y las aplicaciones nativas puras se centra principalmente en los siguientes aspectos:
1. Animación
Existen muchos tipos de animaciones, como por ejemplo. como animaciones laterales Deslizamiento hacia adentro y hacia afuera de los menús de la barra, animaciones receptivas de elementos, cortes entre cambios de página y más. Muchos métodos de implementación bajo H5 no pueden lograr un rendimiento nativo puro. Generalmente hay algunas opciones diferentes: animación css3, animación javascript y animación nativa.
La animación CSS3 consume mucho rendimiento. Si usa un elemento en una animación CSS3, puede que no sea obvio, pero usar la animación CSS3 en un área grande o en la naturaleza hará que la experiencia de la aplicación sea pobre en teléfonos móviles de gama baja. La mejor opción generalmente es llamar a la animación subyacente a través del marco, pero en cualquier caso, equivale a envolver una capa en el código original y el rendimiento inevitablemente se verá afectado.
Por ejemplo, al cargar una nueva página y llamar a la animación subyacente, se deben considerar dos cuestiones: una es la representación de su propia página de recursos y la otra es la adquisición de datos remotos. Incluso si estas animaciones responden rápidamente, una gran cantidad de páginas CSS causarán un retraso en el procesamiento y puede ocurrir que la pantalla o la máquina se congele en blanco al deslizarse. Para solucionar estos problemas de rendimiento, es necesario utilizar precarga o animaciones simuladas. Aun así, las animaciones deslizables hacia adentro y hacia afuera todavía tienen muchos problemas en máquinas Android de gama baja. Si el método de procesamiento de datos del servidor no es apropiado, el fenómeno de "pantalla blanca atascada" será más grave. Consulte los siguientes métodos de recopilación de datos para obtener más detalles.
2. Obtener datos del servidor
Lo primero que debemos aceptar es que la adquisición de datos aquí se realiza de forma asincrónica en la página de recursos, porque solo de esta manera se pueden precargar o precargar estas páginas de recursos. prestado. Sin embargo, los datos obtenidos de forma asincrónica pueden involucrar operaciones DOM al llenar la página. Como todos sabemos, las operaciones DOM consumen mucho rendimiento. Si la página es pequeña y refinada, la página es un poco más grande y los datos son un poco complejos. La manipulación frecuente de DOM puede provocar un parpadeo notable. Y el punto más importante es que si la velocidad de actualización de datos es demasiado lenta después de cargar la página, la plantilla de la página también esperará mucho tiempo, lo que no favorece la experiencia del usuario. No puedes esperar a actualizar como un navegador cada vez que lo abres, ¿verdad?
Si este problema no se resuelve, será difícil para H5 desarrollar páginas con datos a gran escala, y será aún más difícil cambiar entre ellas con frecuencia. Entonces alguien definitivamente pensará en usar MVVM. De hecho, también escribí algunos desarrollos de aplicaciones H5 basadas en MVVM. Relativamente hablando, su forma de obtener datos y actualizarlos es más flexible y científica, pero durante el proceso de redacción, debemos prestar atención a muchas cuestiones únicas de H5. Estos problemas se analizan en el cambio de página a continuación.
3. Cambio de página
Arriba, hemos visto varios buenos métodos de implementación, como precarga y simulación de animación, incluso precarga por lotes, simulación de animación de captura de pantalla por lotes, etc. Aunque parece una solución amigable para muchos problemas, de hecho, si hay suficientes páginas, causará otro problema: el ciclo de vida de la página.
Imagínese que si la página del asistente o la página de inicio almacena en caché los recursos de cinco subpáginas, al saltar a la subpágina de respuesta, los recursos de las páginas inferiores de estas subpáginas también se almacenarán en caché. Este tipo de duplicación definitivamente ocupará mucha memoria y reducirá la experiencia de la APLICACIÓN. Entonces, ¿cómo saber qué páginas se necesitan, cuántas páginas se pueden almacenar en caché como máximo y cuándo finalizar el ciclo de vida de qué páginas? No hay respuestas perfectas a estas preguntas en muchos de los marcos de aplicaciones H5 que he usado, por lo que al desarrollar una aplicación con muchas páginas y contenido, el rendimiento puede disminuir debido a estos problemas de asignación de recursos.
En este momento, echemos un vistazo al problema de carga de datos de MVVM. De hecho, no importa qué marco MVVM sea, cualquiera que lo haya escrito sabe que el problema más importante en la gestión de este nuevo código front-end es el problema de la memoria.
No solo debe asegurarse de que el código esté escrito de manera lo suficientemente elegante sin problemas de pérdida de memoria, sino que también debe considerar si los recursos de su controlador/página se liberan al final del ciclo de vida de la página. ¿Situación global? Es razonable cuando se realizan múltiples solicitudes. Asignar recursos, incluso reutilizar recursos almacenados en caché de estas páginas principales, y más. Es posible que las aplicaciones más pequeñas no tengan estos problemas. Si desea desarrollar una aplicación grande utilizando H5 puro, probablemente le hará perder mucho tiempo y los resultados no le satisfarán.
4. La diferencia entre Android e iOS
Mucha gente dice que dos aplicaciones diferentes, Android/iOS, solo necesitan desarrollarse una vez y que la aplicación H5 se puede compilar, lo que supone una gran diferencia. reduce el costo. De hecho, esta visión en sí misma tiene problemas. Si has escrito este tipo de APP, sabrás de lo que hablo. No son convenientes ni tienen muchos errores, especialmente al depurar. Para dar un ejemplo simple, existen diferencias obvias entre Android e iOS en la forma en que regresan a la página anterior, como cómo manejar la barra superior de iOS en pantalla completa, cómo manejar el diseño de la página cuando una barra inteligente aparece en Android y cómo distinguir las diferencias al llamar a las escenas de hardware subyacentes, etc. Debe escribir un modelo y un juicio del sistema, y luego depurarlo en Android e iOS respectivamente. Al final descubres que es inútil, estás agotado pero no has aprendido nada, simplemente hay un montón de gente que no sabe cuándo quedará obsoleta.
Ahora hay mucha gente desarrollando aplicaciones híbridas H5, pero el H5 puro es muy joven y muchos problemas no se han resuelto bien. Estas son las preguntas que más considero al crear estas aplicaciones. Finalmente, hablemos de una ventaja del H5 que pocas personas notan. Cuando todo el mundo habla de H5APP, todos dicen que es rápido de desarrollar, de bajo costo, multiplataforma, etc., pero creo que tiene una diferencia en comparación con muchos métodos de desarrollo de aplicaciones: diseño mixto de gráficos y texto. Son estos estilos CSS complejos y cambiantes los que consumen rendimiento, pero generan la diversidad de composición tipográfica. El procesamiento a nivel de píxeles del ancho, alto y estilo de cada carácter es la excelencia de H5.