0

PWAでユーザーのアクティビティを追跡したい。現在のURIで各サイトのインプレッションで私のサーバーにリクエストを送信することは可能ですか?サービスワーカーの現在のURL変更を追跡するにはどうすればよいですか?

シナリオ:ユーザーは、現在のURIでPWA→要求を開きます。 ユーザーは現在のURIでサブページ - >送信要求を開きます。

私の例サービス-worker.js:

var cacheName = 'weatherPWA-step-6-2'; 
var filesToCache = [ 
    '/', 
    '/index.html', 
    '/scripts/app.js', 
    '/styles/inline.css', 
    '/images/clear.png', 
    '/images/cloudy-scattered-showers.png', 
    '/images/cloudy.png', 
    '/images/fog.png', 
    '/images/ic_add_white_24px.svg', 
    '/images/ic_refresh_white_24px.svg', 
    '/images/partly-cloudy.png', 
    '/images/rain.png', 
    '/images/scattered-showers.png', 
    '/images/sleet.png', 
    '/images/snow.png', 
    '/images/thunderstorm.png', 
    '/images/wind.png' 
]; 

self.addEventListener('install', function(e) { 
    console.log('[ServiceWorker] Install'); 
    e.waitUntil(
    caches.open(cacheName).then(function(cache) { 
     console.log('[ServiceWorker] Caching app shell'); 
     return cache.addAll(filesToCache); 
    }) 
); 
}); 

self.addEventListener('activate', function(e) { 
    console.log('[ServiceWorker] Activate'); 
    e.waitUntil(
    caches.keys().then(function(keyList) { 
     return Promise.all(keyList.map(function(key) { 
     if (key !== cacheName) { 
      console.log('[ServiceWorker] Removing old cache', key); 
      return caches.delete(key); 
     } 
     })); 
    }) 
); 
    return self.clients.claim(); 
}); 

self.addEventListener('fetch', function(e) { 
    console.log('[ServiceWorker] Fetch', e.request.url); 
    console.log("Url", Client.url); 
    e.respondWith(
    caches.match(e.request).then(function(response) { 
     return response || fetch(e.request); 
    }) 
); 
}); 
+0

あなたはウィンドウ上で 'hashchange'イベントを聞くだけで、何でもできます。 –

+0

@JPrakash:ありがとう! – CYGS

答えて

0

この質問は、おそらくこのように言葉で表現する必要があります:ファイルがキャッシュから提供されているとき

どのように私は私の分析パッケージでページビューを追跡することができます?

あなたは間違いなく活動を調整しているので、これは大きな疑問です。

サーバログに基づいてアクティビティを追跡する場合は、毎回ネットワークリクエストを実行する必要があります。これは、少し非効率で古い学校のIMOです。しかし、活動を追跡する方法があれば、それに対処する方法を構築してください。ログを更新するには、一種の偽AJAX方法を構築する必要があります。もちろん、それを使ってキャッシュを新鮮に保つことができます。

Googleアナリティクスのようなサービスを使用している場合は、プログラムによってトラフィックをトリガーします。これらのサービスの素晴らしい点は、サーバーではなくUIから測定するため、アクティビティをトリガするために何かを変更する必要がないことです。

コンシューマがオフラインのときにアクティビティを許可する場合は、アクティビティをキューに入れてオンラインに戻った後に再生する必要があります。これは、バックグラウンドシンクAPIが広くサポートされると便利になる場所です。

これが役に立ちます。あなたに多くの質問と説明があるかどうかを教えてください。

関連する問題