質問編集履歴
3
見出し「該当のソースコードver03」を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,3 +76,28 @@
|
|
76
76
|
document.body.appendChild(form);
|
77
77
|
form.submit();
|
78
78
|
```
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
### 該当のソースコードver03
|
83
|
+
[参考記事2](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/redirectCount)によるとリダイレクト回数を取得できるようだったので、下記該当ソースコードを「new1.html」内にscriptタグとして設置しました。これでどこかからリダイレクトしてnew1.htmlに来た場合はPOST送信でcacheをクリアしold.htmlにアクセスさせnew2.htmlに飛ぶという流れになりました。
|
84
|
+
```javascript
|
85
|
+
//参考記事2を元に変更した物(ver03)
|
86
|
+
const entries = performance.getEntriesByType("navigation");
|
87
|
+
entries.forEach((entry) => {
|
88
|
+
const name = entry.name;
|
89
|
+
const redirectCount = entry.redirectCount;
|
90
|
+
if (name === 'https://example.com/new1.html' && redirectCount > 0) {
|
91
|
+
//new1.htmlが1回以上リダイレクトされた
|
92
|
+
const form = document.createElement('form');
|
93
|
+
form.method = "POST";
|
94
|
+
form.target = "_top";
|
95
|
+
form.action = 'https://example.com/old.html';
|
96
|
+
document.body.appendChild(form);
|
97
|
+
form.submit();
|
98
|
+
} else if (name === 'https://example.com/new1.html' && redirectCount === 0) {
|
99
|
+
//new1.htmlが0回リダイレクトされた
|
100
|
+
}
|
101
|
+
});
|
102
|
+
```
|
103
|
+
欠点は「new1.html」のリダイレクト元が「old.html」以外でも作動してしまうことですが汗。欠点を補うためリダイレクトから判断するのではなくキャッシュかどうかで判断しようと思い[参考記事3:transferSizeとdecodedBodySizeでのキャッシュ判別](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming/transferSize#%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%8C%E3%83%92%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF)を見ましたを試したが、非SSL環境でテストしたためかうまくいかずもう一度チャレンジします。
|
2
該当のソースコードver02を追加した
test
CHANGED
File without changes
|
test
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
|
23
23
|
|
24
|
-
### 該当のソースコード
|
24
|
+
### 該当のソースコードver01
|
25
25
|
|
26
26
|
```javascript
|
27
27
|
//参考記事より引用
|
@@ -37,7 +37,7 @@
|
|
37
37
|
```
|
38
38
|
|
39
39
|
```javascript
|
40
|
-
//参考
|
40
|
+
//参考記事を元に変更した物(ver01。下から三行目のみ変更)
|
41
41
|
const ifr = document.createElement('iframe');
|
42
42
|
ifr.name = ifr.id = 'ifr_' + Date.now();
|
43
43
|
document.body.appendChild(ifr);
|
@@ -62,3 +62,17 @@
|
|
62
62
|
### 補足
|
63
63
|
参考記事:https://postd.cc/clearing-cache-in-the-browser/
|
64
64
|
実施環境:macのchrome。バージョン133.0.6943.55
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
### 該当のソースコードver02
|
69
|
+
参考記事のiframeを使う意図がわからなくて、iframe無しverにしてみました。これで当環境では「old.html」から「new2.html」に飛べましたが、これでは「new1.html」に直接アクセスできなくなってしまいました。
|
70
|
+
```javascript
|
71
|
+
//参考記事を元に変更した物(ver02)
|
72
|
+
const form = document.createElement('form');
|
73
|
+
form.method = "POST";
|
74
|
+
form.target = "_top";
|
75
|
+
form.action = 'https://example.com/old.html';
|
76
|
+
document.body.appendChild(form);
|
77
|
+
form.submit();
|
78
|
+
```
|
1
タイトルを修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
POSTでキャッシュクリア
|
1
|
+
POSTでキャッシュクリアする方法がわからない
|
test
CHANGED
File without changes
|