1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【jQuery】もし$(selector).load(ファイル名)が動かなくなったときの修正方法

Posted at

外部ファイルが読み込まれない!?と思ったら

これまではload関数を使って以下のような記述で外部のHTMLやPHPを読み込み、特定のタグやIDに反映する方法がありました。

$("#include").load("include.html")

ところが2022年になって外部HTML(またはPHP)の中身が読み込まれないケースを確認。

全く読み込まないわけではなく、スーパーリロード([SHIFT]+[CTRL]+[R])した直後だと読み込まれる。

(ブラウザやサーバの)キャッシュに関連した問題なのだろうか?

改善策:$.ajaxを使う

$.ajax("include.html").done(function(data) {
	$('#include').html(data);
});

コードは増えるが、普通のリロードでも都度読み込まれるようになる

注意:キャッシュ回避だけでは解決しない?

$("#include").load("include.html?d="
    + Math.random().toString(36).substring(2, 12));

パラメータ付与はimgタグの都度読込に使える手法だが、load()だと意図どおりにならない

根本的な原因は特定できていませんが、すぐ使える手法だと感じたので情報共有します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?