5

私は次の簡単なHTMLとJSコードを持っています。ユーザーがイタリア語オプションを選択すると、JSコードは外部JSファイルを動的にロードしますlanguage_it.js

<html>
<head>

<script>
function ChangePageLanguage()
{
var e = document.getElementById("langDD");
var lang = e.options[e.selectedIndex].value;

if (lang == "it")
{
    var scrptE = document.createElement("script");
    scrptE.setAttribute("type", "text/javascript");
    scrptE.setAttribute("language", "JavaScript");
    scrptE.setAttribute("src", "language_it.js");
    var head = document.getElementsByTagName("head")[0];
    head.appendChild(scrptE);
}
}
</script>
</head>

<body>
<select onchange="ChangePageLanguage()" id="langDD">
    <option value="en">English</option>
    <option value="it">Italian</option>
    </select>
</body>
</html>

次のlanguage_it.jsコード行があります。

alert ("Italian");

Firefoxでは正常に動作しますが、のコンテンツを変更しても、でindex.htmlページをlanguage_it.jsChrome起動しない限り、更新されたコンテンツは表示されませんChrome。この問題の解決策はありますか?

4

3 に答える 3

7

Chromeで開発する場合、キャッシュを無効にすることができます

  • F12キーを押して、開発ツールを開きます。
  • 右下隅にある歯車のアイコンをクリックします。
  • 「キャッシュを無効にする」にチェックを入れます。
  • ページをリロードします。
于 2012-05-24T11:23:16.207 に答える
5

キャッシュがスクリプトの適切な更新を妨げている場合、または本番環境で常にキャッシュを解除する必要がある場合は、いつでも次のようにすることができます。

scrptE.setAttribute("src", "language_it.js?" + (Date.now() % 10000));

これにより、時間ベースの数字の文字列が追加され、ほとんどの場合、URIの最後に一意の番号が付けられます。これにより、ブラウザがキャッシュからファイルを取得できなくなります。

于 2012-05-24T11:32:04.283 に答える
2

開発中に.jsファイルを更新するだけでよい場合は、Josephが提案したようにキャッシュを無効にします。

JavaScriptファイルが呼び出されるたびに更新する必要がある場合(たとえば、動的に生成している場合)、ファイル名に一意のクエリ文字列を追加して、ブラウザーが毎回それを取得するようにすることができます。

scrptE.setAttribute("src", "language_it.js?ticks=" + new Date().getTime());​
于 2012-05-24T11:29:12.190 に答える