2011-09-18 24 views
6

Estoy desarrollando un sitio favorito como delicious. Con el fin de proporcionar una mejor y más rápida experiencia de usuario para el usuario, estoy tomando todos los marcadores de la tabla db y formé un objeto json con toda la información de marcadores en él. Por ejemplo, para cada marcador, tengo una identificación, título, URL, descripción, etiquetas, etc. El objeto json ya está formado en la primera carga de la página. Luego obtengo el json de salida, uso jquery.each para diseñar e inyectar html relevante sobre la marcha.¿Cuánto JSON es demasiado JSON?

En este momento, no tengo la opción de probarlo, así que surge mi pregunta: imaginando que no hay límites en el número de marcadores que un usuario puede guardar, ¿cuál sería el efecto en esta estructura en el navegador (o cualquier otro problemas que pueden surgir para esta situación) si un usuario tiene, digamos, 2000 marcadores, también considerando que la búsqueda no es una opción para este proyecto en particular.

Respuesta

7

Probablemente controvertido, pero de todos modos. ¿Cómo puede la paginación no ser una opción? ¿Cuándo es relevante mostrar 2k marcadores a la vez? Yo diría que nunca.

Cuando devuelve tantos datos (por supuesto, depende de la cantidad de texto), está abierto a los ataques DDOS. Imagine un atacante que se apodera de una url que contiene varios megabytes de json, no sería tan difícil hundir sus servidores.

Sería bueno tener más información sobre su UI para que podamos analizar qué datos realmente necesita.

+0

agrego más de 10 a 20 enlaces a mi cuenta de instapaper todos los días. Eso es lo que me hizo pensar en mi pregunta. En este momento no tengo acceso a una pc, pero publicaré algunos ejemplos de mi código mañana. La paginación no está permitida en mi caso ya que va en contra de la lógica del sitio, pero seguramente lo consideraré si mi solución no es factible. En cuanto a los ataques DDOS, tengo todas las medidas posibles. No es 100% seguro, pero ¿qué es? –

+0

Usted dijo 2000 pero ¿qué le impide ser 200 millones? Mil millones? ¿Diez billones? Dijiste que no hay límite. Tienes que programar para los extremos. Para responder a su pregunta, un objeto JSON con 2000 teclas probablemente demorará un poco en acceder, y definitivamente llevará un poco de tiempo agregar 2000 * n elementos al DOM. ¿Por qué no haces algunos experimentos con jsperf.com? – evan

+0

Lo intentaré @evan, gracias. –