Лучше загружать навигационную иерархию JavaScript все сразу или уровень за уровнем? - PullRequest
1 голос
/ 24 мая 2011

Я работаю над некоторыми пользовательскими навигациями jQuery / javascript для сайта, и мне любопытно, что скажется на производительности при принятии решения о разработке

То, как это работает, заключается в том, что для каждой опции существует до 8 дочерних опций, эта иерархия может иметь 4 уровня глубины. Я считаю, что это делает для 8 ^ 4 или 4096 возможных элементов навигации (вероятно, меньше, но это максимум). Эти отношения определены на стороне сервера.

В настоящее время я работаю с тестовыми данными, поэтому есть только около 50 пунктов навигации. Когда страница загружается, я создаю каждый элемент навигации и затем отображаю только то, что нужно для текущего выбора.

Стоит ли переписать это, чтобы загрузить только те элементы, которые необходимы, когда выбор сделан с помощью вызова AJAX или чего-то еще? Я обеспокоен тем, что мой нынешний подход может плохо масштабироваться, если в нем используется до 4096 элементов навигации.

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Загрузка их всех в одно и то же время - определенно вариант, хотя загрузка их в DOM - это другая история.Если вы действительно достигли предела в 4096 возможностей, вы можете попытаться уменьшить загрузку страницы на 1-2 мегабайта (не слишком учитывая размеры изображений).Если вы не просматриваете больше данных (возможно, 16 узлов, 8 уровней в глубине 16 ^ 8), то это будет серьезной проблемой.

, вы всегда можете загрузить 2 в глубину (8 ^ 2 = 64), тогда когдаони открывают панель, загружают все для этой панели.Второй слой, который им нужно щелкнуть через , должен дать вам достаточно времени, чтобы загрузить остальные значения.

1 голос
/ 24 мая 2011

Если 4096 пунктов навигации - это реальная возможность, вам придется сделать что-то похожее на то, что вы описываете.Простая загрузка элементов в DOM займет значительное время, а дальнейшая обработка приведет к большим задержкам и плохому опыту.

Для небольшого количества элементов, вероятно, не стоит тратить время на чрезмерное проектирование решения,Тем не менее, ожидается, что прирост производительности для большого числа элементов будет значительным.

Вот пример загрузки по требованию в Telerik Treeview .Я не защищаю покупку средств управления (большие средства управления, но дорогие), однако это отличный пример того, что возможно.Самостоятельное кодирование не составит труда, и, как вы можете видеть, это обеспечивает отличный пользовательский опыт.

Мои два цента: если у вас есть время, сделайте это сейчас, прежде чем все станет еще лучшесложно / трудно сделать позже.

...