通常,您将收集所有不同类型的数据并将其一起传递给视图:
MVC 框架通常提供一些方法来将请求 URL(例如/offers?id=5
)映射到控制器(或它们的方法)。
假设您想在主页上显示一些数据。
为此,您将首先定义从 URL/home
到某个特定控制器的映射,比如说HomePageController
. 使用您的示例数据,您将在控制器中拥有类似的内容(在将处理请求的方法中):
model.add(dao.getRecentUserPosts());
model.add(dao.getRecentUsers());
model.add(dao.getNewsFromAdmins());
model.add(dao.getMostPlayedGames());
render("viewName", model);
根据对映射到此特定控制器的某些地址的请求,您将从数据访问对象 ( dao
) 中获取不同类型的数据,并将它们添加到您的model
.
一旦model
填充了数据,您可以将其传递给视图(= render
view with this model
),并且在视图中您可以以任何您想要的方式显示它。
我希望您现在已经清楚了基本流程。
参考@BeK 的回答:
处理需要更长时间的请求总是需要单独的方法。您可以选择异步加载此部分,您可以(并且可能会)尝试尽可能多地缓存。
加载侧边栏:
大多数 MVC 框架为您的视图提供某种“基本模板”。
这意味着您可以定义显示在每个页面上的视图的一部分(例如侧边栏或页脚),特别是您只关心动态部分的控制器。这些解决方案足够灵活,可以满足大多数典型需求。
根据您在该侧边栏中显示的内容,有很多选项 -它是静态的还是动态的?可以缓存什么?等等