Я использую GTM в своем приложении next.js и использую next-offline, который использует workbox-webpack-plugin внутренне для автономной поддержки. Хорошая идея использовать стратегию кэширования во время выполнения staleWhileRevalidate
для кэширования gtm. JS?
Мое приложение работает в автономном режиме и сохраняет аналитику в автономном режиме и отправляет их при подключении к Интернету, импортировав этот скрипт:
// Initialize offline google analytics which will store failed analytics requests and try again later when connection is back
// it will also cache the analytics.js library
workbox.googleAnalytics.initialize({
// using a custom dimension(cd1) to track online vs. offline interactions
parameterOverrides: {
cd1: "offline"
},
// Using a custom metric to track time requests spent in the queue
hitFilter: params => {
const queueTimeInSeconds = Math.round(params.get("qt") / 1000);
params.set("cm1", queueTimeInSeconds);
}
});
Допустим, пользователь при втором посещении открыл мою домашнюю страницу. Я использую кэш времени выполнения со стратегией networkFirst для кэширования html, поэтому, если пользователь снова посетит мою домашнюю страницу, пока он полностью отключен, он получит полностью работающее приложение, особенно если я используйте ту же стратегию кэширования времени выполнения networkFirst для кэширования запросов API, но в то время как полностью автономный запрос на получение gtm.js вернет 404, и аналитика не будет работать в автономном режиме, потому что gtm.js не будет инициировать запрос на получение analytics.js который будет обслуживаться из кэша рабочего стола. Моя идея заключалась в том, чтобы использовать стратегию staleWhileRevalidate для кэширования gtm.js, чтобы автономная аналитика работала, даже если пользователь открывает приложение в автономном режиме и если он вернулся в оперативный режим, эта аналитика будет повторно отправлена рабочим боксом.
Это хорошая идея? это будет работать, как ожидалось, или я что-то упустил?