Я думаю, что независимо от того, что вы делаете, вам понадобятся контейнеры и стили, которые применяются только к элементам в этом контейнере. Даже если вы выполняете запрашиваемый Javascript-метод, вам все равно нужно где-то определить, какие элементы будут затронуты, что будет только усложняться со временем.
Поэтому я бы просто избегал решения на основе JS и вместо этого выбрал бы язык на стороне сервера, такой как PHP, который позволял бы вам устанавливать области действия для отдельных представлений, а затем отображал бы представления отдельно, например:
<div id="main">
<? render('view' => 'users.php', 'scope' => 'users'); ?>
<? render('view' => 'games.php', 'scope' => 'games'); ?>
</div>
Метод render может затем обернуть представление в div и убедиться, что у него есть контейнер с указанной областью действия. В зависимости от того, как выглядит представление, вывод может выглядеть примерно так:
<div id="main">
<div class="users">Users go here.</div>
<div class="games">Games go here</div>
</div>
Затем, если вы решите добавить еще один раздел с играми, вы можете просто повторно объявить область действия в новом отрендеренном фрагменте, и он будет иметь ту же область видимости CSS, что и предыдущий.
У вас могут быть файлы CSS, которые представляют каждую область (например, users.css), чтобы помочь отделить стили, которые принадлежат друг другу.
Думаю, это один из способов справиться с этим, и это лучшее, что я могу придумать на месте.
Удачи, и если вы найдете лучшее решение, я хотел бы услышать это!