3

私はいくつかのサイト (元々は別の人によって開発されたもの) でいくつかのメンテナンス作業を行ってきましたが、次のような JavaScript コードがたくさんあることに気付きました。

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

数分間の努力で読みやすさが向上します。

function MM_findObj(name)
{
    var doc = document;
    var x;

    if((var p = name.indexOf("?")) > 0 && parent.frames.length != 0)
    {
        doc = parent.frames[name.substring(p + 1)].document;
        name = name.substring(0, p);
    }

    if(!(x = doc[name]) && doc.all)
    {
        x = doc.all[name];
    }

    for (var i = 0; !x && i < doc.forms.length; i++)
    {
        x = doc.forms[i][name];
    }

    for(var i = 0; !x && doc.layers && i < doc.layers.length; i++)
    {
        x = MM_findObj(name, doc.layers[i].document);
    }

    if(!x && doc.getElementById)
    {
        x = doc.getElementById(name);
    }

    return x;
}

JavaScript が読みやすい方法で記述されない傾向があるのはなぜですか? 私が取り組んできたサイト (初期の開発とは何の関係もありませんでした) では、JavaScript が凝縮されていて、書式設定が不十分で、判読できないという傾向が見られました。スクリプトがページ上で占有するスペースの量を減らすだけですか、それとも技術が貧弱なのでしょうか?

編集:この質問に追加するには、なぜ単一文字の変数名も標準のように見えるのですか?

PS 私は決して専門家ではありません。実際、私は JavaScript にほとんど精通していません。そのため、上記のコードが実際に何を行っているかを説明できる人がいれば、非常にありがたいです。

4

4 に答える 4

9

JavaScript コードを使用して不要な空白を削除し、変数名を短くして、このようなコードを生成したり、さらに悪いコードを生成したりする、非常に一般的に使用されるツールがあります。これにより、ネットワーク帯域幅が節約され、さりげなく覗き見された人がコードを読み取れなくなります (あいまいさによってセキュリティが非常に貧弱になります)。

通常、人々がコードに取り組んでいるとき、コードはこのようには見えません。これは、コードが出荷されようとしているときに行われます。

于 2012-08-03T11:23:41.687 に答える
3

Web ブラウザー用の Javascript は通常、人間のリーダーではなく、ブラウザー用に最適化されています。それを開発するときは、コンパイルされた言語のように扱います。確かに、ソース コードは適切にフォーマットされていたり、コメントが付けられていたりしますが、それはあなたが提供するものではありません。実際のアーティファクトは、ネットワークの消費を抑えるために「縮小」されています。数百万回のヒットを超えると、帯域幅の請求額に大きな違いが生じる可能性があります.

したがって、作成者が見ているようにコードを見ているわけではありません。コンパイルされた実行可能ファイルと道徳的に同等のものを見ています。

もちろん、ほとんどのブラウザーとサーバーは、転送中の Javascript の自動 gzip 圧縮をサポートしているため、以前よりも圧縮の必要性が低くなります。しかし、それはまだほとんどの webdev ショップのプロセスの一部です。

于 2012-08-03T11:29:50.250 に答える
2

JS を圧縮すると帯域幅の使用量が減るため、ページの読み込み時間が短縮されますが、ソースに対してではなく、リリース時にのみ行う必要があります :(

js beautifierが自動的に修正します

于 2012-08-03T11:23:19.633 に答える
0

コードを学習または構築するために読み取り可能な JavaScript が必要な場合は、元の Web サイトの元のバージョンを使用してください。最小バージョンは使用しないでください。読みにくいです。

次に、JavaScript コードを実装する場合は、最小バージョンを作成または使用して、ネットワークで最高のパフォーマンスを得ることができます。ファイルのサイズは本当に違います。それが、プログラマーが 2 つのバージョンの JavaScript をリリースする理由だと思います。

notepad++などのツールを使用 して、最小限の JavaScript を作成できます。

ブラウザは、人間の言葉の意味ではなく、実行中のコードに同じ記号を必要とするだけです。

于 2012-08-03T11:52:29.780 に答える