C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

スマホブラウザのHP表示内容を強制更新したい

[トピック内 47 記事 (1 - 20 表示)]  << 0 | 1 | 2 >>

■99968 / inTopicNo.1)  スマホブラウザのHP表示内容を強制更新したい
  
□投稿者/ olive (1回)-(2022/06/27(Mon) 14:09:28)

分類:[JavaScript] 

以前、自分のHPを更新後、iPhoneのChromeで確認しようとすると
CSSやjsファイルが更新されていないことがよくありました。
この場合、Chromeの設定で閲覧履歴のCookie、サイトデータを削除することにより
CSSやjsファイルは再読込されますが、Cookieまでもが削除されます。
これは都合が悪いので、強制更新用のリンクを作成しました。
具体的には、このリンクのaタグに
onclick="location.reload(); return false;"
を入れてあります。

これは自分のスマホではうまくいきましたが、
どうやら友達のスマホのブラウザ(AndroidのChrome)では、
このリンクをタップしても切り替わらなかったそうです。

ただ、常にサーバーから最新ページを受信したいわけではありませんが、
ページが更新されていないと思った時に、更新リンクのタップで
強制的にページが更新されれば十分です。
このようなことはJavaScriptで可能でしょうか?
引用返信 編集キー/
■99969 / inTopicNo.2)  Re[1]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ くま (209回)-(2022/06/27(Mon) 15:01:04)
よくやる手段では
使用しないURLパラメータを追加して必ず新しいファイルを取得する方法でしょうか。

https://kahoo.blog/disable-cache-javascript-for-developping/


<script src="js/script.js?v=1"></script>
ファイルを更新された際には「?v=1」を「?v=2」に変更


引用返信 編集キー/
■99978 / inTopicNo.3)  Re[1]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2500回)-(2022/06/27(Mon) 16:14:39)
No99968 (olive さん) に返信

> この場合、Chromeの設定で閲覧履歴のCookie、サイトデータを削除することにより
> CSSやjsファイルは再読込されますが、Cookieまでもが削除されます。

「キャッシュされた画像とファイル」だけ削除できないのでしょうか?

引用返信 編集キー/
■99983 / inTopicNo.4)  Re[2]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ olive (2回)-(2022/06/27(Mon) 17:08:55)
>>この場合、Chromeの設定で閲覧履歴のCookie、サイトデータを削除することにより
>>CSSやjsファイルは再読込されますが、Cookieまでもが削除されます。
>
> 「キャッシュされた画像とファイル」だけ削除できないのでしょうか?

はい。「キャッシュされた画像とファイル」だけでは全然ダメでした。
jsやcssは「Cookie、サイトデータ」に含まれているようです。
(おそらくサイトデータの類?)
引用返信 編集キー/
■99984 / inTopicNo.5)  Re[2]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ olive (3回)-(2022/06/27(Mon) 17:10:50)
> 例
> <script src="js/script.js?v=1"></script>
> ファイルを更新された際には「?v=1」を「?v=2」に変更

これをjsファイルでも使えることは考えても見ませんでした。
早速検討します。
引用返信 編集キー/
■99985 / inTopicNo.6)  Re[3]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2503回)-(2022/06/27(Mon) 17:20:40)
No99983 (olive さん) に返信

> はい。「キャッシュされた画像とファイル」だけでは全然ダメでした。
> jsやcssは「Cookie、サイトデータ」に含まれているようです。
> (おそらくサイトデータの類?)

普通の外部 css, js ファイルへの url を link タグの href 属性、script タグの src 属性に指定してブラウザに
読み込ませているのではないのですか?

css, js が Cookie に含まれているなんて言うことはないと思うのですが、具体的にどうなっているか教えていただけ
ませんか? 「自分の HP」ですよね?
引用返信 編集キー/
■99991 / inTopicNo.7)  Re[4]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ olive (4回)-(2022/06/28(Tue) 09:33:47)
> 普通の外部 css, js ファイルへの url を link タグの href 属性、script タグの src 属性に指定してブラウザに
> 読み込ませているのではないのですか?

もちろん、外部 css, js ファイルへの url を link タグの href 属性、script タグの src 属性に指定しています。

> css, js が Cookie に含まれているなんて言うことはないと思うのですが、具体的にどうなっているか教えていただけ
> ませんか? 「自分の HP」ですよね?

『「自分の HP」ですよね?』とはどういう意図でしょうか?バカにしてる?
何も私はjsやcssのデータがCookieに含まれているなどとは一言も書いていないのですが。
私の投稿をきちんと読んでます?
ナナメ読み程度の理解なら、何人も、誰の質問に対しても、書き込みは控えて欲しいです。
引用返信 編集キー/
■99997 / inTopicNo.8)  Re[5]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2504回)-(2022/06/28(Tue) 11:20:35)
No99991 (olive さん) に返信

> 『「自分の HP」ですよね?』とはどういう意図でしょうか?バカにしてる?

No99968 に、

> 以前、自分のHPを更新後、iPhoneのChromeで確認しようとすると

と書いてあるけど違うの?
引用返信 編集キー/
■99998 / inTopicNo.9)  Re[5]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2505回)-(2022/06/28(Tue) 11:24:07)
No99991 (olive さん) に返信

> 何も私はjsやcssのデータがCookieに含まれているなどとは一言も書いていないのですが。

これも No99983

> はい。「キャッシュされた画像とファイル」だけでは全然ダメでした。
> jsやcssは「Cookie、サイトデータ」に含まれているようです。
> (おそらくサイトデータの類?)

と書いてあるけど違うの?
引用返信 編集キー/
■100002 / inTopicNo.10)  Re[3]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ 魔界の仮面弁士 (3420回)-(2022/06/28(Tue) 13:14:26)
No99984 (olive さん) に返信
>><script src="js/script.js?v=1"></script>
>>ファイルを更新された際には「?v=1」を「?v=2」に変更
> これをjsファイルでも使えることは考えても見ませんでした。
> 早速検討します。

それとあわせて、サーバー側の HTTP 応答ヘッダーの出力状況も確認しておいた方が良いかも。
(スマホだと調べにくいので、PC からの方が調べやすいと思います)

サーバー側から、Last-Modified または ETag は出力されているかどうか?
そして Cache-Control 、Expires の出力はどうなっているか?


Cache-Control や Expires は、キャッシュの有効期間を定めるものです。
更新頻度が決まっている場合は、サーバー側でキャッシュの更新頻度を定めておくことができます。
(動的生成されるページの場合には、キャッシュの禁止を指示することもできます)
ただしキャッシュ期間が指定されていた場合、そのキャッシュが有効な期間の間は、
そもそもサーバーへのリクエストが発生しません。その場合はくまさんの No99969 のように、
URL にダミーのパラメーターを追加するなどの対応が必要です。


一方、ファイルの更新頻度が分からず、有効期間を明確に決められない場合には、
Last-Modified または ETag で、ファイルの更新日時またはハッシュを返すこともできます。
.js や .css の方はこちらが良いと思いますので、サーバー側が対応している場合は検討してみてください。
この場合、ブラウザーからは毎回リクエストが発生しますが、前回受信時のキャッシュから
If-Modified-Since または If-None-Match 付きのリクエストをつけて
「より新しいデータがあった時だけ送ってください」という要求が飛んでくるので、
それに対して 無変更通知 or 実データ返却 の応答が自動的に行われるはず。

https://fushiroyama.hatenablog.com/entry/2017/11/28/164104
引用返信 編集キー/
■100003 / inTopicNo.11)  Re[1]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ 大谷刑部 (199回)-(2022/06/28(Tue) 15:11:35)
No99968 (olive さん) に返信
> 以前、自分のHPを更新後、iPhoneのChromeで確認しようとすると
> CSSやjsファイルが更新されていないことがよくありました。
> この場合、Chromeの設定で閲覧履歴のCookie、サイトデータを削除することにより
> CSSやjsファイルは再読込されますが、Cookieまでもが削除されます。
> これは都合が悪いので、強制更新用のリンクを作成しました。
> 具体的には、このリンクのaタグに
> onclick="location.reload(); return false;"
> を入れてあります。

location.reload(true)

でダメなの?

なんとなく、現象的に、環境によってキャッシュを読み込んでる現象に見えるんだけど。
引用返信 編集キー/
■100004 / inTopicNo.12)  Re[2]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ くま (210回)-(2022/06/28(Tue) 15:27:29)
No100003 (大谷刑部 さん) に返信
> location.reload(true)

それ仕様がないんです。
https://developer.mozilla.org/ja/docs/Web/API/Location/reload
引用返信 編集キー/
■100005 / inTopicNo.13)  Re[3]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ 大谷刑部 (200回)-(2022/06/28(Tue) 16:06:51)
No100004 (くま さん) に返信
> ■No100003 (大谷刑部 さん) に返信
>>location.reload(true)
>
> それ仕様がないんです。
> https://developer.mozilla.org/ja/docs/Web/API/Location/reload

なるほど、Chromeで非対応なのね。
ということはedgeでも最近は実質Chromeだから無理ってことですか。

じゃあ、多分ブラザー側で設定するしか多分ないが、質問者さんが更新されないと言ってる、android版Chromeで設定できるかどうかが微妙かも。
引用返信 編集キー/
■100006 / inTopicNo.14)  Re[6]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ olive (5回)-(2022/06/29(Wed) 09:44:44)
2022/06/29(Wed) 10:03:55 編集(投稿者)

※一体不可分の補足を追加
>
>>何も私はjsやcssのデータがCookieに含まれているなどとは一言も書いていないのですが。
>
> これも No99983
>
>>はい。「キャッシュされた画像とファイル」だけでは全然ダメでした。
>>jsやcssは「Cookie、サイトデータ」に含まれているようです。
>>(おそらくサイトデータの類?)
>
> と書いてあるけど違うの?

「Cookie、サイトデータ」に含まれているとは書いたけど、
「Cookie」に含まれているとは書いていないよね。
「(おそらくサイトデータの類?)」とも書いてあるじゃない。
これは、「さすがにCookieのデータではないでしょ」というニュアンス。

そもそも、「Cookie、サイトデータ」は、Chromeの閲覧履歴を削除する際の
対象項目の一つとして表示(Cookie、サイトデータの削除は一体不可分)されているものなので、
もしそれを知らないのなら、上記のニュアンスも分からないだろうと思う。

「じゃあ、万人に分かるように説明してくれ」というお叱りがあるかも知れないけど、
こちらとしては知見のある人に答えてもらえればそれで十分なので、
分からないことをわざわざ無理に回答しようとしなくてもいいんじゃないの?
引用返信 編集キー/
■100007 / inTopicNo.15)  Re[4]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ olive (6回)-(2022/06/29(Wed) 09:50:35)
2022/06/29(Wed) 10:01:24 編集(投稿者)

※追記あり
皆様、色々とありがとうございました。
検証の結果、くま様ご提案のように、
HTMLファイルに記載のjsのパスにクエリ文字列を入れることで
友人スマホでもjsファイルの再読込に成功しました。
(HTML更新時にjsも更新)
ありがとうございました。
解決済み
引用返信 編集キー/
■100008 / inTopicNo.16)  Re[7]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2506回)-(2022/06/29(Wed) 11:10:31)
No100006 (olive さん) に返信

あなたの言ってることが不可解だから聞いているのに、それに対して何を思ったかキレて
レスを返すのは恥ずかしいからやめた方が良いと思いますよ。

不可解というのは下記。このあたりの原因が分からないと対策の話はできません。勘違い
ということもありそうだし。だから聞いているのですよ。

まず最初の No99968 に書いてあることが変。

> onclick="location.reload(); return false;"
> を入れてあります。

> これは自分のスマホではうまくいきましたが、
> どうやら友達のスマホのブラウザ(AndroidのChrome)では、
> このリンクをタップしても切り替わらなかったそうです。

「自分のスマホ」が特別ということでなければそうはならなくて、「友達のスマホの
ブラウザ」のように切り替わらないのが普通です。普通というのは:

(1) location.reload(); で Web サーバーにそのページの要求は出るが、そのページが
  静的 html ファイルならそれもブラウザにキャッシュされているので 304 応答が
  返ってくる。なのでページ本体も、それから参照されている js, css も更新される
  ことはない。

(2) ページ本体が ASP.NET とか動的なものでキャッシュされないようになっていれば、
  location.reload(); でページ本体は書き換えられるとしても、ページ本体から参照
  されている js, css には要求は出ない。(ブラウザによっては js, css にも要求
  が出るかもしれないが 304 応答が返ってくるはず)

次に、No99983 に書いてある「キャッシュされた画像とファイル」だけでは効果がない
という点。

「キャッシュされた画像とファイル」だけ削除すれば、キャッシュになくなるのだから
location.reload(); で Web サーバーへ要求は出ます。

キャッシュを削除すると、If-Modified-Since と If-None-Match は要求ヘッダには含
まれなくなるなので、それを見て 304 応答を返すというような操作はしない。Web サ
ーバーは html 本体およびそれから参照されている js, css を返す。結果、js. css
ファイルは更新される。

js. css ファイルへの参照は、No99991 によると、

> 外部 css, js ファイルへの url を link タグの href 属性、script タグの src 属性に指定しています。

とのことなので、Web サーバーのキャッシュとかは多分関係なくて、「キャッシュされ
た画像とファイル」の削除でブラウザのキャッシュさえ削除すれば普通に上記のように
なるはず。

No99983 で、

> jsやcssは「Cookie、サイトデータ」に含まれているようです。

と、普通とは違う何か特別なことをしているようなので、No99985 で、

> css, js が Cookie に含まれているなんて言うことはないと思うのですが、具体的に
> どうなっているか教えていただけませんか? 「自分の HP」ですよね?

と聞きました。何にキレてるのか知らんけど、上の問いに答えませんか?
引用返信 編集キー/
■100009 / inTopicNo.17)  Re[8]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ 往生際が悪い (1回)-(2022/06/29(Wed) 11:43:09)
WebSurferさん、会話が成り立ってないですよ、もう引きましょう
引用返信 編集キー/
■100010 / inTopicNo.18)  Re[9]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ WebSurfer (2507回)-(2022/06/29(Wed) 12:58:53)
No100009 (往生際が悪い さん) に返信
> WebSurferさん、会話が成り立ってないですよ、もう引きましょう

「会話が成り立ってない」というのが質問者に理解できる知識がないので話が通じないと
いうことを言ってるなら分かります。

でも、何にせよ、捨て垢使って他人に注文を付けるのは止めましょう。

引用返信 編集キー/
■100011 / inTopicNo.19)  Re[10]: スマホブラウザのHP表示内容を強制更新したい
□投稿者/ 往生際が悪い (2回)-(2022/06/29(Wed) 13:09:39)
No100010 (WebSurfer さん) に返信

> 「会話が成り立ってない」というのが質問者に理解できる知識がないので話が通じないと
> いうことを言ってるなら分かります。

そういうのを往生際が悪いといいます
引用返信 編集キー/
■100012 / inTopicNo.20)  Re[5]: スマホブラウザのHP表示内容を強制更新したい
 
□投稿者/ 往生際が悪い (3回)-(2022/06/29(Wed) 13:14:01)
WebSurferさんはここに限らず会話がいつも噛み合ってないです
どう考えてもWebSurferさんに原因があります
文章をよく読んで返信することを心がけたが良いです
わからなかったら返信しない選択肢もあります
無理に返信して相手のせいにする癖を直したが良いです
引用返信 編集キー/

このトピックをツリーで一括表示

次の20件>
トピック内ページ移動 / << 0 | 1 | 2 >>

管理者用

- Child Tree -