正确的方法是将菜单加载放在页面首次加载时执行,并将菜单信息保存在会话(session)中,以便后续页面回发时直接从会话中获取菜单信息,而不需要重新加载。
以下是一个示例代码:
// 在页面首次加载时执行菜单加载,并保存到会话中
session_start();
if (!isset($_SESSION['menu'])) {
$menu = loadMenu(); // 菜单加载逻辑,返回菜单数组
$_SESSION['menu'] = $menu;
} else {
$menu = $_SESSION['menu'];
}
// 页面回发时直接从会话中获取菜单信息
// 然后将菜单信息渲染到页面中
foreach ($menu as $item) {
echo $item['label'];
// 其他菜单渲染逻辑
}
在上述代码中,菜单加载逻辑在页面首次加载时执行,并将结果保存在会话中。之后,每次页面回发时,直接从会话中获取菜单信息,而不需要重新加载。这样可以避免在每次页面回发时重新加载菜单,提高页面加载速度。