La situación que describe es bastante común: cómo dar a su usuario acceso a más datos de los que pueden ver en detalle a la vez.
Existen varias formas de responder la pregunta y la respuesta correcta es completamente subjetiva: depende de lo que el usuario intente ver o hacer con los contactos.Antes de que realmente pueda obtener una solución satisfactoria, necesita saber para qué usarán los contactos los usuarios.
sólo una suposición (pero usted sabe mejor que yo!), Yo esperaría que hay dos cosas que están haciendo:
- de búsqueda: En busca de un contacto específico y que ya saben su nombre/encargarse de.
- Explorar: buscando un contacto específico pero no pueden recordar su nombre/identificador. O simplemente están navegando.
Si filtra todas las soluciones, entonces el objetivo de la búsqueda está casi en la bolsa. Explora el objetivo es el que usted quiere diseñar para:
- aleatoria subconjunto: No es una gran manera de navegar, ya que está básicamente dejan con un subconjunto de navegar y entonces debe filtrar de forma explícita a ver nada nuevo. Difícil de filtrar cuando no sabes exactamente lo que estás buscando.
- Desplazamiento infinito: parece una solución popular en estos días. Me resulta engorroso, especialmente si estás 'infinitamente' desplazándote a través de más de 1000 contactos. Probablemente no sea genial para el objetivo Explore.
- Megafonía: también engorrosa, pero quizás si la búsqueda está vinculada a la ordenación alfabética, esto podría funcionar bien.
- Límite de umbral: ¿así que ... simplemente confiando en el filtrado? Esto puede ser malo en algunos casos de esquina en los que el usuario aplica un filtro y no ve nada b/c el umbral aún no se cumple (tal vez hay un lote de personas con el apellido Johnson, que es lo que buscaste). Además, creo que la capacidad de navegar es importante cuando no sabes lo que estás buscando.
Creo que si yo estuviera en tu lugar, me gustaría introducir alguna agrupación de los contactos. Dudo que los más de 1000 contactos representen un gran problema de rendimiento (¡en menos hablas de un millón!), Entonces el 10000+ es realmente una restricción del usuario: simplemente no pueden ver 1000 contactos a la vez.
Sugiero introducir algunos clústeres, probablemente por el apellido o apellido y nombre. Luego, presente al usuario una forma de perforar en un clúster pero doblando todos los otros contactos para que no sean visibles inmediatamente. Algo en la resma del accordian/rollodex paradigm. Esto le da a su usuario la ilusión de que están trabajando con 'todos los contactos'. Probablemente introduzca un número mínimo para cada grupo, de modo que si el grupo es lo suficientemente pequeño no se moleste en mostrarlo (es decir, ¿por qué mostrar un clúster para 2 o 3 o 5 contactos? Simplemente muestre los contactos). A medida que se aplican los filtros, los conglomerados se derriten.
¿Cuál es el cuello de botella al que se enfrenta en particular? ¿Transfiriendo la información del servidor al cliente? ¿Representa y anima muchos elementos en la pantalla? Simplemente proporcionando una interfaz útil? ¿Algo más? – slifty
es más sobre la interfaz y la mejor manera de organizarlo. obviamente también necesita ser receptivo. – Josh