Я создаю веб-сайт, на котором было бы удобно использовать динамические включения. Сайт полностью ajax (без перезагрузки страницы), и хотя вызовы, возвращающие JSON с чистыми данными, не нужны, все различное html-содержимое для каждой отдельной части приложения (окно / панель / область / форма и т. Д.) мне кажется, лучше всего быть в разных файлах.
Моя первоначальная идея состояла в том, чтобы вернуть вызов ajax к главному файлу «центрального концентратора» (который в первую очередь запускает приложение), который затем знал бы, какой подфайл следует включить. Простое включение всех файлов стало невозможным после того, как я понял, что каждый вызов какого-то крошечного фрагмента должен был бы анализировать весь код ASP для всего сайта! И использование метода Execute не было хорошим, как с точки зрения скорости, так и с точки зрения обслуживания.
Я решил проблему, сделав предполагаемые «дочерние» страницы главными, и включив в них файл «центральный концентратор». По сути, это Javascript туда и обратно.
Это дешевле, чем кажется, так как вся идея веб-страницы заключается в том, что сервер постоянно отвечает на запросы клиентов о "следующей странице". Запрашиваемый контент определяется по объему вызываемой страницей.
Единственным недостатком этого является то, что «веб-части» приложения должны жить частично разделенными: большая часть их содержимого находится в реальном именованном файле .asp, но достаточно их структуры и взаимосвязи, определенной в основном .asp. файл (чтобы, например, пункт меню в одной веб-части знал имя, используемое для вызова или загрузки другой веб-части, и как должна выполняться эта загрузка). В некотором смысле, это все же преимущество по сравнению с традиционным сайтом, где каждая страница должна знать, как загрузить любую другую страницу. Теперь я могу делать такие вещи, как «загрузить эту часть (целую страницу или нет) так, как она хочет, чтобы была загружена».
Я также настроил его так, чтобы каждая часть могла иметь свой собственный javascript и css (если только эта часть нуждается в этих вещах). Затем эти файлы включаются динамически через JavaScript только при первой загрузке этой части. Тогда, если деталь загружается повторно, это не повлечет за собой дополнительных затрат.