soiz1 commited on
Commit
1be14d1
·
1 Parent(s): 6a169a6

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +11 -9
index.html CHANGED
@@ -1021,7 +1021,6 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1021
  statusElem.textContent = errorMsg;
1022
  }
1023
 
1024
- // オフラインならボタンを非表示
1025
  if (!navigator.onLine) {
1026
  updateStatus('オフラインのため操作できません。');
1027
  return;
@@ -1035,13 +1034,13 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1035
  }
1036
 
1037
  try {
1038
- const reg = await navigator.serviceWorker.getRegistration();
 
1039
 
1040
  if (reg) {
1041
  updateStatus('Service Workerは既に登録されています。更新を確認中...');
1042
  const updatePromise = reg.update();
1043
 
1044
- // 即座にupdate処理を開始
1045
  reg.onupdatefound = () => {
1046
  const newSW = reg.installing;
1047
  if (newSW) {
@@ -1060,13 +1059,11 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1060
  };
1061
 
1062
  await updatePromise;
1063
- } else {
1064
- updateStatus('Service Workerは未登録です。');
1065
- registerBtn.textContent = '登録とキャッシュ';
1066
- registerBtn.disabled = false;
1067
  }
1068
- } catch (err) {
1069
- updateError('Service Workerの確認中にエラーが発生しました。', err);
 
 
1070
  }
1071
 
1072
  registerBtn.addEventListener('click', async () => {
@@ -1077,8 +1074,12 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1077
  for (const reg of regs) {
1078
  await reg.unregister();
1079
  }
 
1080
  updateStatus('新しいService Workerを登録中...');
1081
  await navigator.serviceWorker.register('/sw.js');
 
 
 
1082
  updateStatus('登録完了。ページをリロードしてキャッシュを有効化します。');
1083
  registerBtn.textContent = 'ページをリロード';
1084
  registerBtn.disabled = false;
@@ -1089,6 +1090,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1089
  });
1090
  });
1091
  </script>
 
1092
 
1093
  </div>
1094
  <div class="container">
 
1021
  statusElem.textContent = errorMsg;
1022
  }
1023
 
 
1024
  if (!navigator.onLine) {
1025
  updateStatus('オフラインのため操作できません。');
1026
  return;
 
1034
  }
1035
 
1036
  try {
1037
+ // より確実に登録済みかどうかを判定
1038
+ const reg = await navigator.serviceWorker.ready;
1039
 
1040
  if (reg) {
1041
  updateStatus('Service Workerは既に登録されています。更新を確認中...');
1042
  const updatePromise = reg.update();
1043
 
 
1044
  reg.onupdatefound = () => {
1045
  const newSW = reg.installing;
1046
  if (newSW) {
 
1059
  };
1060
 
1061
  await updatePromise;
 
 
 
 
1062
  }
1063
+ } catch {
1064
+ updateStatus('Service Workerは未登録です。');
1065
+ registerBtn.textContent = '登録とキャッシュ';
1066
+ registerBtn.disabled = false;
1067
  }
1068
 
1069
  registerBtn.addEventListener('click', async () => {
 
1074
  for (const reg of regs) {
1075
  await reg.unregister();
1076
  }
1077
+
1078
  updateStatus('新しいService Workerを登録中...');
1079
  await navigator.serviceWorker.register('/sw.js');
1080
+
1081
+ // ready状態まで待機してからリロードボタン表示
1082
+ await navigator.serviceWorker.ready;
1083
  updateStatus('登録完了。ページをリロードしてキャッシュを有効化します。');
1084
  registerBtn.textContent = 'ページをリロード';
1085
  registerBtn.disabled = false;
 
1090
  });
1091
  });
1092
  </script>
1093
+
1094
 
1095
  </div>
1096
  <div class="container">