Changping Beida Jade Bird comparte cómo optimizar el sitio web
Con el continuo desarrollo de Internet, cada vez más consumidores comienzan a acceder a Internet a través de terminales móviles y recibir la información que necesitan. La difusión de esta información debe realizarse a través de páginas web móviles. Por lo tanto, Changping Beida Jade Bird aprenderá hoy sobre los métodos de optimización de páginas web móviles.
Optimización del lado del servidor WEB
Los productos del lado WEB utilizan principalmente nodejs, y los servicios proporcionados por la interfaz HTTP se basan en la separación de los servicios front-end y back-end. La optimización del lado del servidor se refiere principalmente a la optimización WEB implementada en nodejs.
El propósito de la optimización es mejorar las capacidades de respuesta y concurrencia del servidor y aprovechar al máximo las características asincrónicas y sin bloqueo de nodejs. Se optimiza principalmente desde los siguientes aspectos.
Optimización de las llamadas de servicio de interfaz
Para que una página muestre rutas y procese rutas, puede ser necesario llamar a varias interfaces y realizar el procesamiento lógico de la interfaz.
Fusión de interfaces Podemos llamar a la interfaz de fusión para una página y reducir el número de llamadas a la interfaz mediante la fusión de interfaces. Por ejemplo: tomando la página de detalles del producto como ejemplo, se pueden devolver algunas características del producto. una interfaz Es posible reducir el número de llamadas a la interfaz porque cada interfaz maneja el proceso de E/S de la red, serialización de objetos, compresión y descompresión.
Las interfaces se pueden llamar de forma asíncrona, pero no todas las interfaces se pueden fusionar. Para las interfaces que no se pueden fusionar, intentamos utilizar la función de no bloqueo asíncrono del nodo. Cuando se llama de forma asincrónica, se llaman varias interfaces. al mismo tiempo, y el tiempo de llamada depende de una interfaz más lenta.
Hay una cosa que debe explicarse aquí: para las dependencias de la interfaz, por ejemplo, la interfaz A depende del resultado de retorno de la interfaz B. En este caso, será mejor que solucionemos el diseño de la interfaz y reduzca esta llamada en serie, porque en este caso, el tiempo de llamada es la suma de los tiempos tomados por múltiples interfaces.
Reducir los datos de interacción de la interfaz devolverá más datos, lo que dará como resultado la serialización JSON y el procesamiento de objetos por lotes de datos, lo que provocará pérdidas de rendimiento adicionales. A continuación, puede simplificar la estructura de datos devuelta por la interfaz, devolver los campos necesarios (los datos utilizados se mostrarán en la página) y ajustar la cantidad de elementos devueltos. Reduciendo así el tamaño del cuerpo de información de datos devueltos. Además, la interfaz de solicitud debe comprimirse con gzip, lo que puede reducir en gran medida el tiempo de transmisión de la red. Aunque la descompresión consume algo de tiempo de CPU, la pérdida de IO de la red de acoplamiento aún vale la pena.
Optimización del procesamiento comercial
Ahora nuestro principal procesamiento comercial del lado del servidor es principalmente el procesamiento de la lógica de la página, como el control de enrutamiento, el procesamiento de sesiones, el procesamiento de objetos de visualización, la representación de plantillas, etc. . Hemos realizado algunas optimizaciones durante estos procesos.
Optimización de la representación de plantillas
Descubrimos que la representación de plantillas consume mucho rendimiento en el uso real, especialmente el proceso de preprocesamiento de las plantillas si el proceso de preprocesamiento es para manejar el acceso de los usuarios. proceso, su velocidad será más de un orden de magnitud más lenta, por lo que hemos avanzado el proceso de preprocesamiento (hbs transformados) y lo precompilamos al iniciar la aplicación web. También descubrimos que algunas propiedades de configuración predeterminadas de los manillares (como el procesamiento de deshacer) causarán cierta pérdida de rendimiento cuando se concatenan cadenas, por lo que puede desactivar el procesamiento de deshacer para fragmentos html.