Pregunta

Tengo una página que tiene que hacer un enorme conjunto de resultados de la consulta - la mayoría de ellos con muy, muy pequeñas imágenes. Ya está paginado, por lo que no va a resolver mi problema.

La consulta se ejecuta bien - es muy enérgico, vuelve en unos 0,0004 segundos, pagina sí mismo a la vista -. Todo está bien en la tierra de Oz

Sin embargo, hay algunos grandes problemas en que ASP.NET MVC volcados de la página cuando está listo, no cuando se carga. ¿Hay alguna forma de evitar esto?

He intentado utilizar jQuery para atarse a través de capas div y dibujar vistas parciales - esto alivia algunos de los problemas, pero aún así que se puede extraer sólo 'cuelga' en la página hasta que todo está listo.

Me estaba mirando alrededor y encontré algunas sugerencias sobre el uso de Response.Write - pero no pude descubrir nada relevante a mi caso. ¿Algunas ideas? La estructura es la siguiente ...

PartialView
- Category
  - IEnumerable<Models.Images> (List)

PartialView
- Page
  - IEnumerable<Models.Images> (List) (Paginated View)

View
- Gallery
-- Index
--- Categories (Ajax Loaded on Demand, not on View render.)
---- ViewPage (No specific model passed)

El problema es claramente las imágenes, he probado varias veces. Si quito las etiquetas del código, se procesa rápidamente con apenas ningún dato que indique. Cada imagen es de alrededor de 4 kb de tamaño - por lo que la compresión de ellos no es probable.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Hay un par de cosas que usted puede hacer.

En primer lugar, asegúrese de que los propios resultados no son mesas dentro. IE (y tal vez otros navegadores) tienen que esperar hasta que la tabla se ha cargado completamente antes de representar al navegador.

En segundo lugar, hay un comando llamado de respuesta. ras que empujar el buffer de salida al cliente. Usted puede llamar a esto en varias ocasiones. Es posible que desee llamarlo por cada 10 artículos más o menos, por ejemplo. Si usted puede incorporar esto en su código que debe hacer el truco para ti.

Otros consejos

Sobre cuántas imágenes se están cargando en una solicitud dada? Como estoy seguro de que está consciente del problema no es tanto el tamaño de los archivos y más la cantidad de ellos- se necesita más tiempo para mover un montón de archivos pequeños que un archivo grande de igual tamaño.

Una cosa a tener en cuenta sería enviar la página hacia abajo con un conjunto de tamaño específico de resultados ya pobladas y luego usar JavaScript (y tal vez los eventos de desplazamiento) para cargar dinámicamente el resto. Lo ideal es tratar de minimizar el tamaño de la solicitud inicial, de manera que la página no bloquea la interacción del usuario por mucho tiempo; después de ese período de carga inicial podría entonces empezar a tirar en el resto de los resultados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top