teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/12/01 02:46

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -9,4 +9,42 @@
9
9
 
10
10
  <link rel="stylesheet" href="css/test.css?date=<%=JAVAの実行結果%>" type="text/css">
11
11
 
12
- ```
12
+ ```
13
+
14
+ 追記)
15
+ > createTime()の戻り値を付与するにはどうしたらよいのでしょうか?
16
+
17
+ JavaScriptで キャッシュバスティング できるケースは動的リソースに限られます。
18
+ 1. Ajaxで要求して応答を受け取るとき
19
+ 2. DOMを動的に配備する際にsrc属性などで指定したリソースを受け取るとき
20
+
21
+ ----
22
+ > 静的リソース
23
+
24
+ クライアント・サーバー・システムの基本を再確認:
25
+
26
+ ```
27
+ [サーバー] [クライアント(ブラウザ)]
28
+ | (1)
29
+ |<== req(html) =|
30
+ (2) |
31
+ |= res(html) ==>|
32
+ | (3)
33
+ |<== req(css) ==|
34
+ |<== req(js) ===|
35
+ |<== req(img) ==|
36
+ (4) |
37
+ |== res(css) ==>|
38
+ |=== res(js) ==>|
39
+ |== res(img) ==>|
40
+ | (5)
41
+ | |
42
+ ```
43
+
44
+ 1. ブラウザはHTMLページを要求
45
+ 2. サーバはブラウザからの要求を受けて**JSPからHTML生成して**応答。
46
+ 3. ブラウザはHTMLに必要な他のリソースも要求
47
+ 4. サーバは3.に応じる
48
+ 5. 受け取った 4.のリソースはキャッシュされる。
49
+ バスティングしても、基本的にはブラウザのキャッシュに残ります。
50
+ (URLの __クエリ文字が異なるのでリクエストし直す__ 仕組み)