2016-08-29 1 views
0

私のプロジェクトでは、javascriptから非常に大きな.jsファイルをロードしてキャッシュする必要があります。JavaScriptをロードしてキャッシュする

私は実際には、私は3種類の方法を試してみました、ということですが、それぞれにこの<script src="assets/js/app.js"></script>

のような通常のタグでスクリプトを置くために、ログインページからスクリプトファイルをロードしたい、その後、他のすべてのページで1つのファイルはキャッシュされません。また、ページを変更した場合、ログインから別のページに変更すると、ブラウザは再度ダウンロードします。私はJavaScriptで要素を作成し、私は自分のページにこの要素を追加した第1の方法では

var head = document.getElementsByTagName('head')[0]; 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = url; 
// Fire the loading 
head.appendChild(script); 

秒では、私はjQueryのgetScriptを使用:

$.getScript('assets/js/app.js',function(){ 
    alert('OK'); 
}); 

とで私はアヤックスコールで試してみました:

$.ajax({ 
    type: "GET", 
    url: "assets/js/app.js", 
    success: function(){}, 
    dataType: "script", 
    cache: true 
}); 

しかし、これらの方法のどれもスクリプトをキャッシュしているようだ。 これを取得する方法はありますか?

UPDATE

私は問題を解決しました。最初の方法が働いた。クロムのデバッグ設定で「キャッシュを無効にする」チェックボックスがオンになっていることを忘れてしまった。 (私はIE11、Firefox、Edge、Chromeで試しました)

+0

かもしれません必要に応じてクリアしてください。 – Pawan

+1

よくgetScriptは、ボックスからキャッシュを抜け出すために使用します。 JS oneはキャッシュから読み込む必要があります。ファイルに適切なキャッシュヘッダーが設定されていますか?あなたのデバッグツールは、[それらの設定を持つ]ファイルをキャッシュしないように設定されていますか? – epascarello

+0

_ "そして他のすべてのページ" _あなたはすでに読み込まれていないかもしれない 'htmlドキュメントを分離していますか? – guest271314

答えて

1

あなたのプロジェクトに関する多くの情報は共有していません。あなたがのlocalStorageかのsessionStorageにファイルを格納していけない理由
私は、彼らが見て、あなたのjsファイルを圧縮してキャッシュすることでJSに読み込みを高速化する方法を説明ページを発見、あなたはそれが便利

https://betterexplained.com/articles/speed-up-your-javascript-load-time/

関連する問題