2012-07-19 17 views
5

Estoy utilizando Backbone.js para cargar 20 elementos a la vez en la página, obteniendo más elementos cuando se desplaza hacia abajo hasta que no quede ninguno para recuperar del servidor.Elementos de carga diferida con filtrado

Al mismo tiempo, quiero un campo de entrada arriba que al escribir un nombre, filtra los elementos que coinciden.

El problema es que si aún no se ha desplazado hacia abajo y ha recuperado el conjunto completo, el filtro de entrada solo coincidirá con los elementos que se encuentran actualmente en la página.

¿Cuál es la mejor solución técnica y visual para combinar el filtrado de la interfaz de usuario con elementos de carga diferida?

EDITAR: El escenario real aquí es cargar todos sus amigos de Facebook que pueden ser muy lentos y combinarlos con otras aplicaciones. No quería cargar todo de una vez porque la experiencia se ha retrasado.

+1

¿Existen limitaciones técnicas en cuanto a por qué no carga todos los elementos para comenzar o es principalmente para la experiencia del usuario? Saber la respuesta a esta pregunta puede ayudar a formular una respuesta a su pregunta ... – alexwen

+0

Hola Alex, por favor mira mi edición. Gracias. – Abadaba

+0

Carga lenta en ... ¿cuántos amigos de Facebook tienes? – Louis

Respuesta

1

Cuando un usuario está buscando, ¿por qué no restablecer la colección con una búsqueda que incluye un filtro?

Collection.fetch ({plazo:. $ ("# Búsqueda") val()})

Si desea establecer su base de punto final de la API para esta colección para el alcance de sus resultados por los parametros plazo, entonces su la recopilación solo contendría resultados del servidor que coinciden con la entrada del usuario.

También podría limitar la búsqueda inicial a los primeros 3 caracteres que ingresa el usuario y luego hacer el resto del lado del cliente de filtrado a medida que continúan escribiendo. Eso es si no está limitando el lado del servidor de resultados de búsqueda con su primera llamada.

Cuestiones relacionadas