Я построил онлайновый новостной портал, перед которым работает отлично для меня, но некоторые говорят, что домашняя страница немного медленнее. Когда я думаю об этом, я вижу причину, почему это так.Data Access ASP.NET
Домашняя страница сайта отображается
- новости
- Пятно новости (суб-заголовки
- пятна с фотографиями
- Наиболее читаемые новости (как заголовки)
- Самые комментируемые новости (как названия)
- 5 названий новостей из каждой категории новостей (всего 11 человек, например, спорт, экономика, местное население, здоровье и т. д. .)
Теперь каждый из них представляет собой отдельные запросы к db. У меня есть таблицы наборов данных и datatables (стандартные сценарии доступа к данным), поэтому для заголовков я называю бизнес-логику в своем классе новостей, который возвращает данные datatables с помощью tableadapter. оттуда я либо использую datatable, просто привязывая его к элементам управления, либо (большую часть времени) объект преобразует его в список (из новостей), например, и я его уничтожаю оттуда.
Выполнение этого для каждого из вышеперечисленных, похоже, работает нормально. По крайней мере, он не загружает огромную нагрузку. Но заставляет меня задаться вопросом, есть ли лучший способ.
Например, проект, который я описывал выше, является высокодинамичным веб-сайтом, новости вставляются по мере поступления из агентств круглосуточно без остановок. поэтому кэширование в этом случае может показаться не очень хорошим. но, с другой стороны, у меня есть другой подобный проект для местной газеты. Сайт будет обновляться только один раз в день. В этом случае: Могу ли я запустить только один запрос, который вернет datatable, содержащий все введенные на сегодняшний день новостные сообщения, затем запросит данные, которые будут размещены в виде данных, и помещает заголовки, точки и другие элементы в соответствующие места на сайте? Или есть лучшая альтернатива? Я просто блуждаю, как другие люди выполняют подобные задачи самым эффективным способом.
+1 для использования Firebug и YSlow для профилирования на стороне клиента. – Anthony