私はVistaでIE 8を使用しています。javascriptファイルを変更してデバッグを開始するたびに、Ctrl + F5を押してjavascriptをリロードする必要があります。デバッグを開始すると自動的にjavascriptがリロードされますが、ネットを閲覧するだけではパフォーマンスの向上は失われませんか?
ええ、ええ、おそらくあなたはIEが好きではないことを知っていますが、質問は「最高のブラウザは何ですか?」ではないことを覚えておいてください。
キャッシュを解除するには、URLの末尾に文字列を追加します。私は通常(PHPで):
<script src="/my/js/file.js?<?=time()?>"></script>
そのため、作業中に毎回再読み込みし、本番環境に移行したらそれを削除します。現実にはこれをもう少し抽象化しますが、考え方は同じままです。
このWebサイトのソースをチェックアウトすると、同様の方法でURLの最後にリビジョン番号が追加され、javascriptファイルが更新されるたびに変更が強制されます。
Paoloの一般的なアイデア(つまり、リクエストURIの一部を効果的に変更する)が最善の策です。ただし、スクリプトファイルを変更したときに更新するバージョン番号など、より静的な値を使用して、キャッシュのパフォーマンスを向上させることをお勧めします。
したがって、次のいずれかです。
<script src="/my/js/file.js?version=2.1.3" ></script>
または多分
<script src="/my/js/file.2.1.3.js" ></script>
最初のオプションを好むのは、常に名前を変更する代わりに1つのファイルを維持できることを意味するためです(たとえば、ソース管理で一貫したバージョン履歴を維持します)。もちろん、いずれか(私が説明したように)には毎回includeステートメントを更新する必要があるため、デプロイするたびに固定値を動的な値に置き換えるなど、動的な方法を考え出すことができます。 (Antなどを使用)。
Webページまたはjavascriptファイルを操作するときは、変更するたびにリロードする必要があります。 IE 8で設定を変更できるため、ブラウザはキャッシュされません。
この簡単な手順に従ってください。
ブラウザでこれを実行したい場合(つまり、ユーザーにこれを強制しない)、キャッシュを使用しないようにコードを設定することはありません。ホセが言ったように、パフォーマンスの低下があります。
そして、IEをオンにすることはありません。アクセスするすべてのWebサイトでパフォーマンスの向上が失われるためです。常に更新するようにIE特定のサイトまたはブラウジングセッションのサーバー:
または、キーボードショートカット愛好家(私のように)のために..
注意事項:これを言った...サイトが本番環境で表示される方法とは異なる方法で開発/テストを行うと、結果が混在するリスクが生じることに留意してください。良い例は、このキャッシュの問題です。 IEがAjax呼び出しをキャッシュし、GETメソッドからの結果を更新しないという問題を発見しました。IEでキャッシュを無効にした場合、開発でこの問題を見たことはなく、このように本番環境に展開しました。
JavaScriptでは、それは不可能だと思います。なぜなら、最新のブラウザにはJavaScriptで セキュリティに関するポリシー があり、キャッシュのクリアは非常に違反するものだからです。
追加しようとすることができます
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
ヘッダーにありますが、パフォーマンスが低下します。
ASP.Netを実行している場合は、ASP.Net 4.5で利用可能なBundling and Minificationモジュールを確認してください。
http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
JavaScriptファイルを指す「バンドル」を宣言できます。ファイルが変更されるたびに、新しいクエリ文字列サフィックスが生成されますが、ファイルが変更された場合にのみ生成されます。これにより、タグを新しいバージョン番号で更新することを考える必要さえないため、更新プログラムを非常に簡単に展開できます。
また、複数の.jsファイルを1つのファイルにまとめて1つのファイルにまとめて縮小することもできます。 CSSについても同じです。
これは、ASP.NETのトリックを行うはずです。概念はPHPの例で示したものと同じです。URLはスクリプトがロードされるたびに異なるため、プロキシのブラウザはどちらもファイルをキャッシュするべきではありません。 JavaScriptファイルをリロードしないことに気付くまで、Visual Studioでかなりの時間を無駄にしました。
<script src = "Scripts/main.js?version = <%= DateTime.Now.Ticks.ToString()%>" type = "text/javascript"> </ script>
完全な例:
<%@ Page Title = "Home Page" Language = "C#" MasterPageFile = "〜/ Site.master" AutoEventWireup = "true" CodeBehind = "Default.aspx.cs" Inherits = "WebApplication1._Default"%> <asp:Content ID = "HeaderContent" runat = "server" ContentPlaceHolderID = "HeadContent"> <script src = "Scripts/jquery-1.4.1-vsdoc.js" type = "text/javascript"> </ script> <script src = "Scripts/main.js?version = <%= DateTime.Now .Ticks.ToString()%> "type =" text/javascript "> </ script> <script type =" text/javascript "> $(document) .ready(function(){ myInit(); }); </ script> </ asp:Content>
明らかに、このソリューションは開発段階でのみ使用し、サイトを投稿する前に削除する必要があります。
Webサイトの開発中にIEタブでF5を繰り返し押す必要をなくすには、 ReloadIt を使用します。
IEに表示される各Webページについて、ファイル名、ディレクトリ、またはそれらのセットを構成できます。これらの構成されたパスのいずれかで変更が発生した場合、ReloadItはIEタブを更新します。シンプルなツールです。動作します。
これにより、javascriptだけでなくすべてがリロードされます。
URLの最後にjsファイルの変更日を追加します。 PHPでは、次のようになります。
echo '<script type="text/javascript" src="js/something.js?' . filemtime('js/something.js') . '"></script>';
更新するたびにスクリプトがリロードされるとき。