Colección de citas famosas - Slogan de motivación - Diseño e implementación de mecanismos de caché, carga y actualización en APP

Diseño e implementación de mecanismos de caché, carga y actualización en APP

1. ¿Por qué debería agregar caché?

Escenario 1: Espere mientras solicita nuevos datos del servidor. ¿Qué mostramos a nuestros usuarios? La primera es una hermosa página esperando a cargarse; la segunda es contenido almacenado en caché. Para el segundo tipo, los usuarios pueden ver datos antiguos y esperar datos nuevos mientras operan la página, que es más "operable" y "disponible", reduciendo así el tamaño y el tiempo de obtención de datos del servidor y mejorando la experiencia del usuario. Por otro lado, si el intervalo entre actualizaciones de contenido es largo, o el intervalo entre actualizaciones de usuario es corto, obtendremos repetidamente una gran cantidad de datos del servidor sin almacenamiento en caché, aumentando el costo.

Escenario 2: Cuando el resultado es que no hay conexión a Internet, o la red del metro es demasiado pobre para cargar datos, es realmente irresponsable dejar una página en blanco para el usuario. Y también se pueden utilizar muchas funciones sin estar conectado a Internet, como: la libreta de direcciones en la APLICACIÓN, ver algunos registros de chat, mensajes de notificación, listas de artículos, etc. Debido a que los usuarios no necesitan leer información nueva al abrir la aplicación, pueden volver a consultar información anterior (puede haber información antigua que el usuario no ha visto), por lo que el almacenamiento en caché adecuado puede satisfacer más escenarios de usuario.

Escenario 3: Qian Un día, un usuario descubrió que había instalado una APP y los datos se habían agotado muy rápidamente. Puede que ponga esta aplicación en el palacio frío para siempre. Aumentar el caché es una forma de ahorrar tráfico. Aunque el ahorro no es mucho o los usuarios no son conscientes de ello, como product manager de actitud hay que pensar más.

2. ¿Qué es el caché?

El almacenamiento en caché se puede dividir en las siguientes categorías:

(1) Caché de aplicaciones.

(2) Caché arreglado.

(3) El caché se puede limpiar manualmente.

(4) Caché que no se puede limpiar manualmente.

(5) Caché temporal.

Entre ellos, el caché temporal se suele utilizar en una página funcional para guardar el caché de cada columna. En la misma función, las subfunciones se dividirán en varias columnas. En este uso, el contenido de cada columna de pestaña se puede guardar como un caché temporal. En esta función, las columnas se cambian sin recargar los datos y se muestran usando el caché.

Para los usuarios, la navegación se puede cambiar sin problemas durante el uso, mientras que para los servidores, los datos rara vez se actualizan en un corto período de tiempo, por lo que generalmente puede satisfacer las necesidades normales de los usuarios y lograr una experiencia excelente.

El mecanismo de borrado temporal de caché consiste en borrar el caché anterior después de salir de este módulo funcional. En otras palabras, la próxima vez que ingrese a este módulo de funciones, deberá obtener datos nuevamente.

A menudo utilizamos el almacenamiento en caché temporal porque la información realmente no es tan importante y no es necesario comprobarla una y otra vez. Para la información que usamos con frecuencia y que necesitamos verificar repetidamente, Ma sugiere que tomemos un caché fijo y lo guardemos localmente para no tener que solicitar datos del servidor la próxima vez que naveguemos.

Para el caché fijo, se subdividirá en caché que se puede limpiar manualmente y caché que no se puede limpiar manualmente.

El primero es nuestro caché más común, utilizado por casi todos los productos. Por lo general, los datos cargados por los usuarios que exploran artículos y atlas se almacenan en caché localmente en este formulario, y no es necesario cargarlos la próxima vez que vuelvan a consultar este artículo y atlas. Los usuarios también pueden borrar estos cachés manualmente para liberar espacio.

Para algunos escenarios especiales, como algunos datos relativamente fijos, no queremos empaquetarlos en la aplicación desde el principio, lo que consumirá demasiada capacidad y hará que el paquete del producto sea muy grande. y no queremos empaquetarlo en la aplicación cada vez. Esta información se carga en el servidor al ingresar a la página. ¿Qué hacemos? La solución sugerida es que podemos cargarlo una vez y guardarlo localmente de forma permanente, de modo que el paquete de instalación no sea muy grande y no sea necesario cargarlo en el futuro.

3. ¿Cómo borrar el caché?

Generalmente, una aplicación proporcionará la función de borrar el caché en la configuración para liberar espacio con un solo clic. Además, lo mejor es que la aplicación diseñe un mecanismo de limpieza automático, que se pueda diseñar en dos dimensiones.

(1), Hora

Borre el caché estableciendo una hora fija o configurando la hora de forma flexible según el ciclo de uso del usuario. Los escenarios para cada producto son diferentes y la frecuencia de uso por parte de los usuarios también es diferente. Al establecer este mecanismo, es necesario considerarlo en función de la situación real.

(2) Capacidad

Generalmente establezca un límite de capacidad, utilice el principio de diseño de la pila para borrar el caché y los datos antiguos que desborden la pila se borrarán automáticamente.

1. Carga de página

Opción 1: carga general de una sola página

Este tipo de carga es relativamente simple y generalmente se usa cuando el contenido de la página es relativamente simple. Muestra el contenido después de cargar todos los datos a la vez. El estado de un error al cargar una sola página es relativamente fácil de manejar.

Opción 2: Carga en bloque de una sola página

La característica de esta solución es que permite a los usuarios ver el contenido paso a paso, reduciendo su ansiedad en este proceso gradual.

Entre ellos, se puede dividir en: si hay una relación entre módulos, primero se carga el contenido principal y luego se carga el contenido secundario. Por ejemplo, Youku carga las columnas primero y luego carga el contenido de cada columna.

Si no existe una correlación absoluta entre los módulos, entonces el contenido de cada módulo se puede cargar de forma independiente y mostrarse por separado según la velocidad de solicitud. Este proceso tiene una cierta posibilidad de que los usuarios encuentren las funciones que necesitan sin extraer completamente los datos, como los clientes Dianping y Taobao.

Si el marco es fijo y el contenido se actualiza, puede mostrar el marco primero y luego cargar y mostrar los datos de cada módulo por separado, como varias aplicaciones de iOS.

Este tipo de carga de módulos requiere especial atención al estado de falla de carga. Después de todo, cada módulo indica que la carga falló y es muy frustrante hacer clic para intentarlo de nuevo. Se puede decidir, en función de la prioridad de la información, qué datos no adoptan el estado predeterminado y qué datos adoptan el mensaje de error.

Escenario 3: carga entre páginas

Página principal y subpágina o dentro de la misma aplicación, los campos entre páginas se pueden reutilizar y no es necesario volver a cargar datos nuevos cuando cargando subpáginas.

Opción 4: Precarga

La característica de este método de carga es que mientras carga el contenido de una página, predice el siguiente comportamiento del usuario y carga la página que necesita usar a continuación. contenido, permitiéndole obtener la información inmediatamente durante su siguiente operación sin tener que esperar a que se cargue.

La preinstalación proporciona a los usuarios una experiencia perfecta del producto, lo que les permite utilizar el producto de forma más directa y fluida sin sentirse interrumpidos.

Ejemplos específicos son:

Al explorar el álbum, cuando vea la primera imagen, la segunda, tercera y cuarta imágenes se cargarán automáticamente en segundo plano. No hay espera. proceso al cambiar a la segunda imagen después de terminar la primera imagen.

Al navegar por la lista de noticias, el contenido de cada noticia se precarga en segundo plano. Cuando los usuarios eligen ver noticias, pueden leer el contenido inmediatamente.

Sin embargo, esta solución también debe afrontar muchos problemas. Ma Xianghai cree que el problema más directo es el tráfico, porque automáticamente eliminará una gran cantidad de tráfico de datos que los usuarios tal vez no utilicen en absoluto. En términos generales, Ma sugiere que este modo de carga se pueda configurar en un entorno wifi. O establezca reglas de carga para que solo se pueda precargar el contenido principal y parte del contenido secundario solo se pueda cargar cuando los usuarios realmente lo utilicen. Por ejemplo, cuando se carga previamente el texto de las noticias, solo se puede cargar información de texto y la información de imagen solo se puede cargar cuando el usuario ingresa a la página interior. Esta combinación de precarga y carga de fragmentos también se usa ampliamente en varios escenarios.

Además, la precarga lleva tiempo. Simplemente no se lo muestra al usuario en el cliente, sino que funciona silenciosamente en segundo plano. Se deben tener consideraciones especiales cuando los usuarios usan la información antes de cargarla, por lo que al diseñar la precarga, se debe considerar otro método de carga común adecuado para esta situación.

La precarga debe diseñarse de acuerdo con escenarios específicos, establecer prioridades de información, considerar de manera integral el tamaño y el tráfico específicos de varios tipos de información y considerar el método de precarga general. Todo esto requiere un análisis y una reflexión cuidadosos.

Con el desarrollo del entorno de red, la precarga se convertirá en una forma común de cargar productos en el futuro. La experiencia fluida que proporciona a los usuarios mejora en gran medida la usabilidad de los productos.

2. Carga de operaciones

Además de cargar la información de la página, también es necesario registrar las operaciones en la página enviando una solicitud al servidor.

Opción 1: Cargando capa

Después de una operación, aparece una capa de aviso modal para notificar al usuario que la carga está en progreso. Los mensajes modales se utilizan principalmente para evitar que los usuarios realicen otras operaciones durante el proceso, lo que provoca errores de carga actuales. Debido a las indicaciones modales y la posibilidad de estar en el estado de carga durante mucho tiempo debido a razones de red, se recomienda proporcionar una operación de "cierre" para pausar esta carga y restaurar la aplicación a su estado utilizable. Cuando la carga falla, se puede convertir en un aviso de falla en la capa flotante actual. La capa de aviso modal es la forma más segura, pero hará que el usuario se sienta interrumpido durante el uso.

Escenario 2: El estado de carga del control en sí.

Este método combina el estado de carga de la operación y el estilo del control. Después de operar un control, el control cambia al estado cargado, momento en el cual el control no puede repetir la operación. Dado que este método de carga es el estado del control en sí y no afecta otras operaciones, los usuarios también pueden realizar otras operaciones en la página, lo que puede generar múltiples solicitudes al mismo tiempo y aumentar el riesgo de fallas en la carga. Esto también es un inconveniente de este modelo, pero esta situación extrema rara vez ocurre. Después de que falla una solicitud, puede utilizar un mensaje de Toast para notificar al usuario el motivo del error.

Opción 3: carga en segundo plano

Después de que el usuario opera, el cliente informa inmediatamente que la operación fue exitosa y luego coloca la solicitud en segundo plano para interactuar con el servidor. Este proceso no requiere comprensión ni espera por parte del usuario. En general, la validación es buena.

Pero en casos extremos, pueden ocurrir algunas situaciones inexplicables. Debido a que la solicitud se registra en segundo plano e interactúa con el servidor, el cliente no indica si la solicitud real fue exitosa. Todo mostrará que la operación fue exitosa, lo que hará que el usuario piense erróneamente que la operación fue exitosa. pero, de hecho, la próxima vez no tendrá éxito.

Por lo tanto, este método de carga debe sopesarse de acuerdo con escenarios de uso específicos. Para algunas operaciones importantes, se recomienda utilizar la carga modal. Para algunas operaciones pequeñas, como me gusta, suscripciones y seguidores, puede utilizar la carga en segundo plano.

3. Cargar la página siguiente o la página actual.

El usuario ingresa a la página de inicio y da oficialmente el primer paso en la experiencia. El siguiente paso es saltar entre interfaces según los objetivos del usuario. Hay muchas estrategias de carga para completar el salto de la interfaz, pero no importa de qué forma sean, podemos dividirlas en dos categorías: "carga de la siguiente página" y "carga de la página actual".

(1) La "carga de la siguiente página" satisface la necesidad del usuario de echar un vistazo con antelación.

Consideramos una página como un "punto" y el tráfico de la página es una "línea" que conecta estos puntos. Realizamos un estudio de seguimiento ocular simple en el escenario de "el usuario quiere comprar un par de jeans". Desde el inicio de la aplicación hasta la exploración del producto, la confirmación del producto y finalmente la página siguiente, la escalera de alumnos presentada al usuario aumenta, es decir, E & gtD & gtC & gtB& gt; Con los temas, descubrimos que los usuarios tienen más ganas de ver lo que quieren ver que de navegar. Por lo tanto, la "carga de la siguiente página" en este momento es perfecta y satisface la necesidad del usuario de echar un vistazo con anticipación.

(2)¡Espera! Necesito pensarlo

Del mismo modo, también estudiamos el escenario de "recargar teléfonos móviles con Alipay". Desde el pago inicial hasta la confirmación del segundo pago, las pupilas del usuario parecen más grandes, es decir, A y B son aproximadamente iguales. A través de entrevistas, se descubrió que, a diferencia del "flujo de experiencia incremental", cuando los usuarios encuentran una interfaz con lógica de juicio, los usuarios no están ansiosos por ver lo que contiene la página siguiente, sino que tienen una mentalidad de verificación de no ser 0, es decir, 1. Por lo tanto, en la interfaz lógica de juicio, la demanda del usuario de espiar contenido no es fuerte. Por supuesto, no hay contenido. Es solo un pequeño brindis o una simple interfaz de retroalimentación de información (aquí significa "se carga la página siguiente". insípido). Por el contrario, los usuarios tienen una gran necesidad de verificación de 0 o 1, y están acompañados de tensión y emoción mientras esperan los resultados. Por lo tanto, a través de la interfaz de carga de la página actual, significa que el sistema está tratando de procesar las instrucciones dadas por el usuario, lo que hace que el usuario se sienta nervioso y emocionado hasta que aparece el resultado: "procesamiento exitoso", completando satisfacción no 0, es decir , 1 verificación.

4. Cargar o mostrar primero

Cuando es necesario cargar la función, se puede mostrar antes de cargar. Cuando es necesario cargar el contenido, ocurre lo contrario.

Taobao

La primera página que abre la APP es una función, por lo que se muestra primero y luego se carga:

Simplemente haga clic en un módulo (no haga clic en el menú), de la siguiente manera se mostrará el contenido (producto), por lo que se mostrará después de la carga y luego se mostrará después de la carga:

JD.com

De manera similar, el módulo de funciones se mostrará antes de cargar:

Cargue el contenido primero y luego muéstrelo una vez completado:

Ambos métodos tienen sus propias ventajas y desventajas:

Mostrar primero, luego cargar:

Ventaja: hace que el usuario espere 0 ilusión.

Desventajas: Los datos actuales pueden ser incorrectos y no se descubrirán hasta el último paso de la operación del usuario.

Cargar primero, luego mostrar:

Ventajas: Garantiza la calidad y precisión de los datos.

Desventajas: Cuando la red no es buena, provocará espera.

Evidentemente, el módulo funcional es fijo para un producto y rara vez se actualizará en un corto período de tiempo, por lo que la probabilidad de que estos datos sean erróneos o diferentes del estado actual es mucho menor. Por lo tanto, puedes utilizar el método de lucirse primero y fingir después.

Por otro lado, el contenido (especialmente los datos de producto) es el más susceptible a cambios. Para garantizar que los datos vistos por cada consumidor sean los más auténticos y precisos, deben cargarse antes de mostrarse.

1. La actualización de la página en blanco falló y apareció un mensaje.

Todas las aplicaciones actuales se anuncian como centradas en el contenido, por lo que intentan evitar las páginas en blanco. Para la mayoría de las aplicaciones, el mejor enfoque es utilizar el almacenamiento en caché. Después de ingresar a la página, primero se muestra el caché anterior y luego se actualiza el contenido. En segundo lugar, la segunda forma de eliminar las páginas en blanco es proporcionar recomendaciones al sistema para reemplazarlas. Sin embargo, para algunas páginas, el contenido de la página está estrechamente relacionado con el estado de uso del usuario y las páginas en blanco son inevitables. En este momento se utilizarán algunos consejos tutoriales para enriquecer la página e incentivar a los usuarios a generar contenido.

Sin embargo, algunas aplicaciones de información, como la lectura de periódicos, abren una página en blanco de forma predeterminada y luego cargan el contenido (no entiendo muy bien esta configuración). Otras aplicaciones, como Douban Moment y MONO, también tendrán una página en blanco cuando ingresas por primera vez a la aplicación todos los días. Supongo que la razón por la que se presenta el segundo tipo de aplicación es esta. Su contenido* es estrictamente diario y se selecciona a una hora fija cada día. Querrán que solo veas el contenido de ese día todos los días, por lo que una vez al día siguiente, el contenido de ayer será engorroso. Entonces, cuando ingresas a la aplicación por primera vez todos los días, habrá una página en blanco, lo que simboliza que cada día es un nuevo comienzo. En este momento, aparecerá la lógica de "actualización en blanco".

El escenario correspondiente a la actualización en blanco es el siguiente: el usuario quiere actualizar el contenido y sabe que se puede actualizar contenido nuevo aquí, pero la actualización no tiene éxito. En este momento, es necesario dar una explicación al usuario. Entonces necesitas avisar al usuario. Al mismo tiempo, después de preguntarle al usuario, debemos darle una solución, que es "hacer clic e intentar nuevamente".

2. La actualización de la página en caché falló sin aviso.

Aplicaciones comunes, como Zhihu, NetEase News, Curiosity Daily, WeChat Moments, etc. , todos toman la forma de caché. Después de abrir, se mostrará el contenido almacenado en caché y luego el sistema enviará una solicitud al servidor. Si hay una actualización de contenido, el contenido se actualizará automáticamente una vez y el contenido actualizado sobrescribirá directamente el contenido actual. No aparece ningún mensaje después de que falla la actualización. Sin embargo, también existen algunas aplicaciones, como Youdao Dictionary, Penguin FM, NetEase Cloud Music, etc. , aparecerá un mensaje después de que falle la actualización.

Creo que la diferencia entre las dos aplicaciones es

frecuencia de aplicación;

continuidad temporal del contenido;

interfaces de rigidez.

Por ejemplo, NetEase News, como herramienta para matar el tiempo, se utiliza con frecuencia todos los días, por lo que los usuarios quieren ver si hay actualizaciones después de ingresar. En segundo lugar, el contenido de NetEase News se actualiza continuamente, por lo que los usuarios sabrán que el contenido que se muestra actualmente ha sido leído y procesado por mí. Finalmente, la página de lista de noticias muestra un resumen. Los usuarios pueden determinar rápidamente si desean ingresar a la página de detalles a través del resumen, lo que ayuda a los usuarios a recordar el último escenario de uso.

Entonces esto corresponde a un escenario: el usuario solo quiere ver si hay una actualización, por lo que ya ha preparado la expectativa psicológica de "no hay contenido nuevo", por lo que incluso si el contenido no se puede actualizar, el usuario no pensará demasiado en ello. Por el contrario, los usuarios pueden sentirse frustrados si aparece un mensaje de error. Porque sabía que ahora había contenido, pero no se había actualizado debido a problemas de red, y las tareas que quería realizar se veían obstaculizadas por factores externos, creando una sutil sensación de frustración.

3. Error al actualizar la página de caché.

En otro tipo de aplicación, la frecuencia de uso no es tan alta, o el contenido no tiene continuidad temporal, o la interfaz actual no puede evocar el último escenario de uso del usuario. Entonces es necesario dar el primer indicio de su fracaso.

Por ejemplo, Penguin FM está destinado a usarse con menos frecuencia, porque la información recibida a través de la visión será más rápida y mayor que a través del oído, y la categoría de audio tiene requisitos ambientales más altos (como el medio ambiente cuando se usa auriculares) No es tan ruidoso y necesitas estar en un lugar privado para jugar afuera). En segundo lugar, este tipo de aplicación se recomienda en tiempo real y no hay problema de continuidad temporal. Los usuarios no pueden juzgar si el contenido ha sido leído en función del tiempo. Y las preguntas no pueden ayudarte a hacer un juicio rápido. Aún así tienes que escucharlas para saber cuál es el contenido. Finalmente, si no se lo recuerda al usuario, cuando ingrese a la página de detalles y reciba el recordatorio, sentirá que la aplicación es una pérdida de tiempo para el usuario.

Entonces, para este tipo de contenido, es necesario recordarle que la actualización falló.