Я попробовал это решение, поместив манифест в default.ctp, но это вызывает некоторые проблемы, все мои страницы были кэшированы ... я думаю, что он описан в спецификации"... страницессылка на манифест автоматически кэшируется, даже если он явно не упоминается ".
... так как все мои страницы кэшируются, манифест проверяется на каждой странице.И когда другой пользователь входит в систему, он видит домашнюю страницу последнего пользователя и другие страницы.
Окончательное решение: создать страницу перенаправления / загрузки
1 - создать страницу перенаправления: Я создал файл Pages / redirect.ctp и функцию redirect () {} в контроллере Pages.Простая страница с приветственным сообщением и панелью загрузки на основе события прогресса applicationCache:
var appCache = window.applicationCache;
appCache.addEventListener ('progress', function (event) {console.log (event.loaded + "of" + event.total + "files ..."); // внести некоторые изменения в панель загрузки страницы}, false);
2 - Загрузить манифест только на странице перенаправления: В View / Layouts / default.ctp я отфильтровал тег, чтобы показать манифест только на странице перенаправления:
request-> params ['controller'] == 'pages' &&
$ this-> request-> params ['action'] == 'redirect'):?>
3 - Используйте страницу перенаправления в компоненте аутентификации, чтобы заставить моего пользователя
перенаправить страницу после входа в систему: В appController установленный компонент аутентификации, подобный этому
public $ components = array (
'Session',
'Auth' => array (
'authError' => "Неверный пользователь или пароль",
'unauthorizedRedirect'=> "/ pages / redirect? err = login",
'loginRedirect' => "/ pages / redirect",
'logoutRedirect' => "/",
'loginAction' => "/user / login ",
'authorize' => array ('Controller')
)
);
теперь будут кэшироваться только элементы, помещенные в манифест.Страница перенаправления кэшируется (согласно спецификации), но событие applicationCache обновляет страницу с этим «динамическим».