私は、ページの読み込みを高速化するためにjavascriptの読み込みを遅延するように構築しました。ウェブサイトを展開するには、YIU圧縮器を使用してスクリプトを最小限に抑えます。スクリプトには2つのバージョンがあります.1つは圧縮され、元のものはありません。例:example-min.jsおよびexample.js。いくつかのjavascriptは、機能が提供されるときにのみ読み込まれ、時にはより多くのスクリプト(プラグインのアイデア)が必要になる場合があります。JavascriptでYIU圧縮プログラムでjavascriptを圧縮しているかどうかを検出します。
「ホスト」jsファイルが圧縮されている場合は、他のjsファイルが必要な場合は知りたいので、圧縮されている場合は、jsファイルの縮小版が読み込まれます。そうでない場合(開発中)、orginialファイルをロードします。例えば
:
function myObject()
{
var o = this;
o.isJsMinified = function()
{ s = o.isJsMinified.toString(),ss='s= ';
return (s.indexOf(ss+'o.is')<0);
};
o.require = function(s, delay, baSync, fCallback) // add script to dom
{
var oo = document.createElement('script'),
oHead = document.getElementsByTagName('head')[0],
f = (typeof fCallback == 'function')?fCallback:function(){};
if(!oHead)
{ return false; }
oo.onload = function() {oo.id='loaded'; f(oo); };
oo.type = 'text/javascript';
oo.async = (typeof baSync == 'boolean')?baSync:false;
oo.src = s;
setTimeout(function() { oHead.appendChild(oo); }, (typeof delay != 'number')?delay:1);
return true;
};
.....
.....
if(<new functionality found>)
{
if(o.isJsMinified())
{ o.require('new-min.js',800); }
else { o.require('new.js',800); }
}
.....
.....
}
あなたは、私は関数自体(ソース)は、スペース(縮小さバージョン)から取り除かれるかどうかを検出するためにトリックを使用しjsIsMinified()関数を見てください。しかし、Firefoxには問題があります。元の書式が返されず、違いが検出されません。例えば
:YUIの圧縮機で圧縮された //:Firefoxが表示されます
o.isJsMinified=function(){s=o.isJsMinified.toString(),ss='s= ';return (s.indexOf(ss+'o.is')<0);};
:
function() {
s = o.isJsMinified.toString(), ss = "s= ";
return s.indexOf(ss + "o.is") < 0;
}
機能は、Firefoxに失敗し、それは常に、それが圧縮されていない 'と言います'。誰かがこのための回避策を知っていますか?
なぜgsのためにdownvote誰かがこの閉じられたトピックですか? – Codebeat
あなたの質問、特に既存の回答がある質問を拝見しないでください。私はここであなたの編集をロールバックしましたが、もう一度やってはいけません。 –