2011-10-08 15 views
6

Al obtener una lista de elementos a través de una llamada json, es mejor usar varias llamadas pequeñas (para obtener información cuando sea necesario) o una llamada grande con todos los datos.¿Cuántos datos debe recuperar una llamada JSON?

Por ejemplo, tiene una llamada json para obtener una lista de libros que coinciden con una palabra clave de título en particular. Hay 100 resultados. Está mostrando los datos en una forma paginada: 10 resultados por 'página'. ¿Es más eficiente hacer una llamada y obtener todos los resultados o hacer una llamada para los próximos 10 en cada página?

Me imagino que está parcialmente determinado por la cantidad de resultados que hay. Si se trata de un número enorme, la segunda opción parece clara. ¿Pero cuál es un buen límite para el número que puede obtener en una sola llamada: 100, 1000, 10,000 artículos?

Respuesta

0

Depende.

Obviamente, desea mantener el uso del ancho de banda al mínimo, pero también hay una sobrecarga para cada llamada individual. Tendrás que hacer algunas conjeturas, lo más importante: ¿qué probabilidades hay de que necesites los datos de las páginas 2 a 100?

Si es muy probable (digamos, en el 90% de los casos los usuarios van a hacer clic en muchas páginas del mismo conjunto de resultados), descargaría el resultado completo de una vez, pero de lo contrario, ' d carga páginas individuales sobre la marcha.

Otra cosa a tener en cuenta es la latencia. Cada llamada ajax tiene una cierta latencia, dependiendo de la distancia (en topología de red, no necesariamente geográfica) entre el cliente y el servidor. Para la primera carga, la latencia es inevitable, pero después de eso, debe preguntarse si la respuesta rápida es importante. En circunstancias normales, se espera y es aceptable, pero si su caso de uso típico implica pasar de una página a otra muchas veces, puede convertirse en una molestia, y puede considerar comprarse una idea para un tiempo de carga inicial más largo.

Si desea cargar varias páginas, pero el conjunto de resultados es demasiado grande (por ejemplo, miles o millones de páginas), podría pensar en esquemas más sofisticados, por ejemplo, descargar la página solicitada y los siguientes 10, o descargar la página solicitada inmediatamente y luego prefiera las siguientes 10 páginas en segundo plano.

1

general, cada llamada AJAX tiene una sobrecarga y bajar el número de llamadas diferentes hace que el rendimiento mejor .. menos que los datos es grande ...

En paginación En general es mejor no obtener todos los datos de la comenzando porque, en general, los usuarios no se desplazan por todas las páginas ... por lo que puede reducir la carga en el servidor al no mover los datos ... por otro lado, si los datos son relativamente pequeños o si cree que el usuario tendrá que verlos todos los datos, busquelos para guardar la sobrecarga de diferentes llamadas ...

Cuestiones relacionadas