getscript() を使用して、画像ギャラリーのスクリプトをロードしています。ギャラリーをクリックするとすぐに、次のコードが実行されます。
$(function () {
$(window).hashchange(function () {
$(document).ready(function () {
$('#nav li a').click(function () {
$('#content-wrap').load(toLoad, showNewContent);
function showNewContent() {
if ($('#content-wrap').is(':empty')) {
return false;
} else {
if (window.location.hash == "#photos") {
alert("soundswaste1");
$.getScript("galleria/galleria-1.2.8.min.js");
$.getScript("galleria/themes/classic/galleria.classic.min.js", getGalleria);
function getGalleria() {
alert("soundswaste2");
$.getScript("galleria.js");
}
}
$('#content-wrap').fadeIn(500).css("display", "block");
}
return false;
});
});
});
});
まず、Chrome コンソールに移動します -> [ネットワーク] タブを右クリックします -> ブラウザのキャッシュをクリアします -> ページを更新します -> 写真をクリックします。「soundswaste1」というアラートが出て効果が発動しません。画像はページ上に並んでいるだけです。
次に、「写真」をもう一度クリックするだけで、両方のアラートをそれぞれ2 回受け取ります。2 つの質問 :
キャッシュをクリアすると、すべてのスクリプトが最初に読み込まれないのはなぜですか。それらが異なるパスにあるためですか?
アラートを2 回目に 2 回受け取るのはなぜですか?