ホームページ ウェブフロントエンド jsチュートリアル Javascript最適化スキル(ファイルスリム化)_JavaScriptスキル

Javascript最適化スキル(ファイルスリム化)_JavaScriptスキル

May 16, 2016 pm 07:06 PM
javascript 最適化 スキル

最近はJavaScript関連の技術を勉強しています。 「JavaScript 高度なプログラミング」には、JavaScript コードの最適化の重要性に焦点を当てた章があります。開発中に多かれ少なかれこのような問題に遭遇するJavaScript開発者は多いと思います。

ほとんどの場合、コードの最適化は実際の開発で重点を置く必要がある部分ではありません。しかし、コードが完成すると、開発者は常にコードができるだけ短く効率的であることを期待します。この本から得た知識と実際の開発プロセスでの私の経験を組み合わせて、私が採用したいくつかのトリックを以下に説明します (スクリプトに従うとみなすことができます)。

はしがき

スクリプト言語と比較して、コンパイル言語は最適化の問題についてあまり心配する必要がありません。コンパイラは、大部分の場合、コンパイル時に最適化操作を実行します。たとえば、すべての変数、関数、オブジェクトなどは、プロセッサのみが理解できるシンボルとポインター (通常は実行可能ファイルと呼ばれます) に置き換えられます。他のスクリプト言語ではファイルサイズをあまり気にする必要はありませんが、JavaScript は異なります。
まずサーバー側からソースコードをダウンロードし、それをクライアントのブラウザーで実行するためです。したがって、JavaScript コードの速度は、ダウンロード時間 (ファイルのサイズに応じて) と実行速度 (コードのアルゴリズムに応じて) の 2 つの部分に分割されます。この記事では主に Javascript のダウンロード時間の最適化、つまり Javascript ファイル自体のサイズをできるだけ減らす方法について説明します。
ここで留意すべき数字の 1 つは 1160 です。これは、単一の TCP/IP パケットに収まるバイト数です。したがって、ダウンロード時間を最適化するには、各 Javascript ファイルを 1160 バイト未満に保つことが最善です。

コメントを削除

これはナンセンスのように思えますが、多くの開発者はそれを忘れています。実際の運用環境では、スクリプト内のコメントを削除する必要があります。コメントはチームがコードを理解するのに役立つため、開発中に非常に重要です。ただし、実際の運用環境では、コメントによってスクリプト ファイルのサイズが大幅に増加します。それらを削除しても、スクリプトの実際の実行には影響しません。

タブとスペースを削除する

適切なインデントと空白を使用したコードは、一般的に読みやすくなります。ただし、ブラウザではこれらの余分なタブやスペースは必要ないため、削除することをお勧めします。もちろん、関数パラメータ、代入ステートメント、および比較演算の間にスペースを忘れないでください。例えば

関数 showMeTheMoney(お金)
{
if (!money) {
false を返します。
} else {

}
} は次のように最適化できます

関数 showMeTheMoney(money){if(!money){reutrn false;}else{...}}

これにより、容量が一部削減される可能性があります。

すべての改行を削除します

JavaScript における改行の存在については多くの議論がありますが、結局のところ、改行によってコードの可読性が向上するということです。ただし、改行をしすぎるとコードサイズも大きくなります。
改行を削除できない何らかの理由がある可能性があるため、ファイルが Unix 形式であることを確認してください。 Windows および Mac 形式の改行文字は改行を表すのに 2 文字を使用するため、Unix では 1 文字のみを使用します。したがって、ファイルを Unix 形式に変換すると、バイト数も節約できます。

変数名を置換

これはおそらく最も退屈な方法であり、通常は手作業では行われません。結局のところ、変数名はインタプリタにとっては意味がなく (開発者にとってわかりやすいだけです)、説明的な変数名をより単純で短い名前に置き換えることで、運用環境のサイズをある程度削減することもできます。たとえば、上記のコードは次のように簡略化できます。

関数 sm(m){if(!m){reutrn false;}else{...}}

これは頭痛の種のように思えるかもしれませんが、実際の効果は同じです。

ツールを使用する

上記の方法を実際に使用すると、いくつかの困難が生じる可能性があります。幸いなことに、これらの手順を完了できる既製の外部ツールがあります。以下にいくつかの簡単な紹介を示します。
ECMAScript クランチャー: http://saltstorm.net/depo/esc/
JSMin (JavaScript Minifier): http://www.crockford.com/javascript/jsmin.html
オンライン JavaScript コンプレッサー: http://dean.edwards.name/packer/

この記事を読むことに興味があると思います。

その他の方法

ブール値を置換します

比較のために、true は 1 に等しく、false は 0 に等しくなります。したがって、スクリプトに含まれるリテラルの true は 1 に置き換えることができ、false は 0 に置き換えることができます。これにより、true の場合は 3 バイト、false の場合は 4 バイトが節約されます。

ネガティブ検出を短縮する

コードには、特定の値が有効かどうかをテストするステートメントが含まれることがよくあります。ほとんどの条件付き非判定は、変数が未定義、null、または false であるかどうかを判断するものです。次に例を示します。

if (myValue != 未定義) {
// ...
}

if (myValue != null) {
// ...
}

if (myValue != false) {
// ...
}

これらは正しいですが、論理 NOT 演算子を使用しても同じ効果が得られます。

if (!myValue) {
// ...
}

このような置換により、一部のバイトを節約することもできます。

配列リテラルとオブジェクトリテラルを使用する

たとえば、次の 2 行は同じものです。

var myArray = 新しい配列;
var myArray = [];

ただし、2 行目は 1 行目よりもはるかに短く、簡単に理解できます。オブジェクト宣言も同様です。


var myObject = 新しいオブジェクト;
var myObject = {};

たとえば、次のステートメントを考えてみましょう。

var mySite = 新しいオブジェクト;
mySite.author = "気分が良い";
mySite.location = "http://www.gracecode.com";

次のように書くと非常に理解しやすくなり、はるかに短くなります。

var mySite = {author:"feeinglucky", location:"http://www.gracecode.com"};

はい、この問題はこれで終わりです。上で述べたように、JavaScript コードの速度は、ダウンロード時間 (ファイル サイズに応じて) と実行速度 (コード アルゴリズムに応じて) の 2 つの部分に分けられます。今回はダウンロード時間の最適化について説明しますが、次回は移動速度の最適化について説明します(これは非常に技術的ですよね)。

以下に宿題が出されます。おそらく、jQuery が 70 KB のコードをどのようにして約 20 KB に圧縮するのかに興味があるかもしれません。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Mar 27, 2024 pm 02:57 PM

Win11 のヒントの共有: Microsoft アカウントのログインをスキップする 1 つのトリック Windows 11 は、新しいデザイン スタイルと多くの実用的な機能を備えた、Microsoft によって発売された最新のオペレーティング システムです。ただし、一部のユーザーにとっては、システムを起動するたびに Microsoft アカウントにログインしなければならないのが少し煩わしい場合があります。あなたがそのような人であれば、次のヒントを試してみるとよいでしょう。これにより、Microsoft アカウントでのログインをスキップして、デスクトップ インターフェイスに直接入ることができるようになります。まず、Microsoft アカウントの代わりにログインするためのローカル アカウントをシステムに作成する必要があります。これを行う利点は、

ベテラン必携:C言語の*と&のヒントと注意点 ベテラン必携:C言語の*と&のヒントと注意点 Apr 04, 2024 am 08:21 AM

C 言語では、他の変数のアドレスを格納するポインタを表し、& は変数のメモリ アドレスを返すアドレス演算子を表します。ポインタの使用に関するヒントには、ポインタの定義、ポインタの逆参照、ポインタが有効なアドレスを指していることの確認が含まれます。アドレス演算子の使用に関するヒントには、変数アドレスの取得、配列要素のアドレスを取得するときに配列の最初の要素のアドレスを返すことなどが含まれます。 。ポインター演算子とアドレス演算子を使用して文字列を反転する実際の例。

VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 Mar 26, 2024 am 08:21 AM

VSCode (Visual Studio Code) は、Microsoft によって開発されたオープン ソース コード エディターであり、強力な機能と豊富なプラグイン サポートを備えており、開発者にとって推奨されるツールの 1 つです。この記事では、初心者が VSCode の使用スキルをすぐに習得できるようにするための入門ガイドを提供します。この記事では、VSCode のインストール方法、基本的な編集操作、ショートカット キー、プラグインのインストールなどを紹介し、具体的なコード例を読者に提供します。 1. まず VSCode をインストールします。

C++ プログラムの最適化: 時間の複雑さを軽減する手法 C++ プログラムの最適化: 時間の複雑さを軽減する手法 Jun 01, 2024 am 11:19 AM

時間計算量は、入力のサイズに対するアルゴリズムの実行時間を測定します。 C++ プログラムの時間の複雑さを軽減するためのヒントには、適切なコンテナー (ベクター、リストなど) を選択して、データのストレージと管理を最適化することが含まれます。クイックソートなどの効率的なアルゴリズムを利用して計算時間を短縮します。複数の操作を排除して二重カウントを削減します。条件分岐を使用して、不必要な計算を回避します。二分探索などのより高速なアルゴリズムを使用して線形探索を最適化します。

PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 Mar 24, 2024 am 09:18 AM

タイトル: PHP プログラミングのヒント: 3 秒以内に Web ページにジャンプする方法 Web 開発では、一定時間内に別のページに自動的にジャンプする必要がある状況によく遭遇します。この記事では、PHP を使用して 3 秒以内にページにジャンプするプログラミング手法を実装する方法と、具体的なコード例を紹介します。まず、ページ ジャンプの基本原理は、HTTP 応答ヘッダーの Location フィールドを通じて実現されます。このフィールドを設定すると、ブラウザは指定されたページに自動的にジャンプできます。以下は、P の使用方法を示す簡単な例です。

Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Mar 27, 2024 pm 07:57 PM

Win11 のトリックが明らかに: Microsoft アカウントのログインをバイパスする方法 最近、Microsoft は新しいオペレーティング システム Windows11 を発表し、広く注目を集めています。以前のバージョンと比較して、Windows 11 はインターフェイスのデザインや機能の改善の点で多くの新しい調整を加えましたが、いくつかの議論も引き起こしました. 最も目を引く点は、ユーザーが Microsoft アカウントでシステムにログインすることを強制することです。ユーザーによっては、ローカル アカウントでログインすることに慣れており、個人情報を Microsoft アカウントにバインドすることに抵抗がある場合があります。

ワードボックスの√記号の使い方を詳しく解説 ワードボックスの√記号の使い方を詳しく解説 Mar 25, 2024 pm 10:30 PM

Wordボックスで√記号を使うコツを詳しく解説. 日々の仕事や勉強の中で、文書の編集や組版などでWordを使用することが多くなります。その中でも√記号はよく使われる記号で、通常は「正しい」を意味します。 Word ボックスで √ 記号を使用すると、情報をより明確に表現し、文書の専門性と美しさを向上させることができます。次に、ワードボックスで√記号を使用するスキルを詳しく紹介します。皆さんのお役に立てれば幸いです。 1. √ 記号を挿入する Word では、√ 記号を挿入する方法がいくつかあります。 1つ

WIN7システムのスタートアップ項目を最適化する方法 WIN7システムのスタートアップ項目を最適化する方法 Mar 26, 2024 pm 06:20 PM

1. デスクトップでキーの組み合わせ (win キー + R) を押してファイル名を指定して実行ウィンドウを開き、[regedit] と入力して Enter キーを押して確定します。 2. レジストリ エディターを開いた後、[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer] をクリックして展開し、ディレクトリに Serialize 項目があるかどうかを確認します。ない場合は、エクスプローラーを右クリックして新しい項目を作成し、Serialize という名前を付けます。 3. 次に、「シリアル化」をクリックし、右側のペインの空白スペースを右クリックして、新しい DWORD (32) ビット値を作成し、「Star」という名前を付けます。

See all articles