js、css、htmlはブラウザのさまざまなバージョンを決定します

js、css、htmlはブラウザのさまざまなバージョンを決定します
正規表現を使用してIEブラウザのバージョンを判別する

IEブラウザかどうか確認する

if (document.all) { alert("これは IE ブラウザです");}

IE6ブラウザかどうか確認する

方法 1: if ( /MSIE 6.0/ig.test(navigator.appVersion) ) {alert("これは IE6 ブラウザです");}
または /MSIE 8/.test(navigator.appVersion)

方法2:

var IE = !+'\v1';

IE6 = IE && ([/MSIE(\d)\.0/i.exec(navigator.userAgent)][0][1] == 6)

IE7ブラウザかどうか確認する

if ( /MSIE 7.0/ig.test(navigator.appVersion) ) {alert("これは IE7 ブラウザです");}

上記に基づいて IE ブラウザを判断し、同じロジックで他の IE ブラウザを判断します。

ブラウザのバージョン情報で各ブラウザを識別する

var _uat=navigator.userAgent;
if(_uat.indexOf("MSIE 6.0")>0) アラート("ie6");
そうでない場合、_uat.indexOf("MSIE 7.0")>0) アラート("ie7");
そうでない場合、_uat.indexOf("MSIE 8.0")>0 の場合、alert("ie8");
そうでない場合、_uat.indexOf("Firefox")>0 の場合、アラート ("firefox");

CSSはブラウザを決定します
#example{color:red ;} /*firefox*/
* html #example{color:blue;} /*ie6*/
*+html #example{color:green;} /*ie7*/

HTMLはブラウザを決定します
1. <!--[if !IE]><!-->IE以外で利用可能<!--<![endif]-->
2. <!--[if IE]> すべてのIEが認識可能<![endif]-->
3. <!--[if IE 6]> IE6 のみが認識できます<![endif]-->
4.<!--[if lt IE 6]> IE6以下のバージョンでは認識できます<![endif]-->
5. <!--[if gte IE 6]> IE6以降のバージョンでは認識できます<![endif]-->
6.<!--[if IE 7]> IE7 のみが認識できます<![endif]-->
7. <!--[if lt IE 7]> IE7以下のバージョンでは認識できます<![endif]-->
8. <!--[if gte IE 7]> IE7以降のバージョンでは認識できます<![endif]-->

HTML 内の CSS および JS リンクのバージョン番号

背景

検索エンジンで「.htaccess キャッシュ」というキーワードを検索すると、ウェブサイトのファイル キャッシュの設定に関するチュートリアルが多数見つかります。設定することで、頻繁に更新されない CSS、JS などのファイルをブラウザー側にキャッシュできるため、訪問者がウェブサイトにアクセスするたびに、ブラウザーはサーバーから読み取るのではなく、ブラウザー キャッシュから CSS、JS などを取得できます。これにより、ウェブサイトの起動がある程度高速化され、サーバーのトラフィックが節約されます。

質問

ここで問題が発生します。.htaccess によって設定された CSS および JS キャッシュには有効期限があります。訪問者のブラウザに CSS および JS がキャッシュされている場合、ブラウザは CSS および JS キャッシュの有効期限が切れる前にのみ、キャッシュから CSS および JS を読み取ります。サーバー上で CSS および JS を変更した場合、リピーターの顧客が Ctrl + F5 を押して Web サイトのページを更新するか、ブラウザのキャッシュを手動でクリアしない限り、これらの変更はリピーターのブラウザでは変更されません。ウェブサイトには数万人の訪問者がいて、その多くはリピーターです。CSS を更新した後、すべての訪問者にキャッシュを更新するよう依頼することはできません。では、この問題にどう対処すればよいでしょうか。

解決

1. CSS ファイル名を変更する: 実際、この問題を解決するのは非常に簡単です。キャッシュはファイル名でマークされます。ウェブサイトの CSS ファイルの内容を更新したら、CSS ファイル名を変更するだけです。たとえば、元の HTML の CSS 呼び出しステートメントは次のようになります。

<link rel="スタイルシート" href="http://www.example.com/style.css" type="text/css" media="screen" />

CSS ファイル名を変更するだけです:

<link rel="スタイルシート" href="http://www.example.com/index.css" type="text/css" media="screen" />

CSS ファイル名を変更する別の方法は、次のようにバージョン番号をファイル名に書き込むことです。

<link rel="スタイルシート" href="http://www.example.com/index.v2011.css" type="text/css" media="screen"/>

css ファイルが更新されたら、ファイル名のバージョン番号を変更するだけです。

<link rel="スタイルシート" href="http://www.example.com/index.v2012.css" type="text/css" media="screen"/>

2. CSS ファイルにバージョン番号を追加する: 実際、CSS ファイルが変更されるたびに CSS ファイル名を変更するのは少し面倒です。そこで、読み込み CSS ステートメント (つまり、CSS リンクの ? の後の内容) にバージョン番号を追加できます。たとえば、元の HTML の CSS 呼び出しステートメントは次のようになります。

<link rel="スタイルシート" href="http://www.example.com/style.css?v=2011" type="text/css" media="screen"/>

CSS ファイルのバージョン番号を 2012 に変更するだけです。

<link rel="スタイルシート" href="http://www.example.com/style.css?v=2012" type="text/css" media="screen"/>

要約する

実際、CSS ファイルの後の疑問符には実用的な効果はなく、接尾辞としてのみ使用できます。疑問符とパラメータの組み合わせ方法を使用すると、バージョン番号などの情報を追加でき、同時にブラウザのキャッシュを更新できます。小さな細部が私たちに大きな利便性をもたらすことがあります。

<<:  MySQL における一般的な高度な SQL ステートメント

>>:  JavaScript関数の詳細な説明これを指す問題

推薦する

docker pull imageエラーの問題を解決する

説明する: Windows 10 に VM をインストールし、VM で Docker を実行し、Do...

MySQLトリガーの概念、原理、使用法の詳細な説明

この記事では、例を使用して、MySQL トリガーの概念、原則、および使用方法を説明します。ご参考まで...

Mac で docker と kubectl の自動補完コマンドを追加する方法

kubectl の紹介kubectl は、k8s クラスターを操作するためのコマンドライン ツールで...

Linux での NTP サーバー設定の詳細な手順

目次1. 環境設定1.NTPサーバー2. ビジネスサーバー2. NTPサーバーの設定1. chron...

コンパイル、インストールから設定ファイルの説明まで、中国語でnginxの詳細な説明

この記事では、コンパイルとインストールから設定ファイルの説明まで、Nginx について詳しく紹介しま...

ボタンの 4 つのクリック応答方法の概要

ボタンは頻繁に使用されます。ここでは、イベント処理メソッドを整理し、実装方法が多数あることを発見しま...

1 つの記事で React における Redux の初期の使用を理解する

Redux はデータ状態管理プラグインです。React や Vue を使用してコンポーネント化された...

MySQL デッドロック ルーチン: 一意のインデックスの下でのバッチ挿入順序の不一致

序文デッドロックの本質はリソースの競合です。バッチ挿入の順序が一貫していないと、デッドロックに陥りや...

MySQL ストアド プロシージャのエラー処理例の詳細な説明

この記事では、例を使用して MySQL ストアド プロシージャのエラー処理について説明します。ご参考...

Vue3.0 異なる解像度のコンピュータの適応操作

まず依存関係をインストールする必要があります npm i lib-flexible-computer...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールするとサービスが起動できない問題を解決します

今日、mysql の公式サイトから mysql-5.7.18-winx64.zip をダウンロードし...

ubuntu20.04 LTSにdockerをインストールする方法

ゼロ: 古いバージョンをアンインストールするDocker の古いバージョンは、docker、dock...

Vueを使用してタイマー機能を実装する

この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...

CSSでnグリッドレイアウトを実装する方法

一般的なアプリケーションシナリオ現在のアプリのインターフェースは基本的に同じであり、グリッドレイアウ...