2017-09-13 8 views
0

(私はスーパーユーザでこれを置くこととみなさが、それは本当に多くのプログラミングの質問です)二回アンギュラ再コンパイルした後、Chromeを更新する必要が

それが検出するたび私は私のangularjsコードを再コンパイルし、バックグラウンドでの面倒なbrowsersyncタスクを使用しています変化する。私の角度はES2015を使って書かれており、バベルを使って不平等な仕事をしています。蒸散が完了した後はいつでも、変更を有効にするには、Ctrlキーを押しながらF5キーを押してChromeで操作する必要があります。私のChromeデベロッパーツールでは、[ネットワーク>キャッシュを無効にする]オプションがオンになっています。なぜ2回リフレッシュする必要がありますか?を一度リフレッシュするだけで済む方法はありますか?キャッシュを最初に手動でクリアするか、何らかのハックを使用する必要はありませんか?

+0

キャッシングの動作は、Webサーバーによって制御されます。この問題は、Angularやその他のクライアント側の問題に固有の問題ではありません。サーバーがスクリプトをキャッシュしないことが予想される場合は、スクリプトを誤って構成したことになります。 – estus

答えて

1

私はこれが助けることができる、本当にわからないんだけど、私は、私は私のスクリプトのSRCの後ろにいくつかのランダムな文字列を追加することで解決する同様の問題を抱えているブラウザは異なるスクリプトとして、それを識別するよう

//to tell the browser it's a different script 
<script src="myscript.js?id=123123121"></script> 

;私はgulp、jspm、webpackのいずれかで作業しています。上記のコードを実装する方法は、各コンパイル時にDate.now()でスクリプトを書き換えるプラグインを使用することです。

+0

ジョンさん、ありがとうございました。物事をハックするのではなく、これを修正するよりクリーンな方法を探しています。 –

+0

@ChrisHalcrowこれは、特に本番環境でこのケースを処理する有効な方法です。 'id'はファイルのタイムスタンプまたはビルド番号です。これにより、ブラウザのキャッシュを有効にしたまま、エンドユーザーと開発者の両方のスクリプトが更新されます。 – estus

0

私は問題が別のブラウザタブに直接URLを使用して私のページを読み込みます。これは、指定されたポート番号を使用してgruntysyncyncが接続されているタブではありません(私のページコンポーネントのいくつかはポート番号に依存しているので、これを制御する)。私は、他のタブでページを更新する前に、接続されたURLのブラウザのリロードが完了するまで待つ必要があります。その後、最初にリフレッシュされたコードが表示されます。

関連する問題