同耀壓縮機壓縮我已經做出了建設推遲加載JavaScript來加快頁面加載速度。爲了部署網站,我使用YIU壓縮機來最小化腳本,也爲了提高速度。將會有兩個版本的腳本,一個是壓縮的,而另一個不是。例如:example-min.js和example.js。有些JavaScript只會在功能進入時加載,有時需要更多腳本(插件的想法)。檢測如果JavaScript在Javascript
無論如何,我想知道(如果需要其他js文件),如果「主機」的js文件進行壓縮,所以當它被壓縮它加載JS文件的縮小的版本。如果沒有(開發時)它加載原始文件。
例如:
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有一個問題,它不會返回原始格式,因此無法檢測到任何差異。
例如: //由銳壓縮機壓縮:
o.isJsMinified=function(){s=o.isJsMinified.toString(),ss='s= ';return (s.indexOf(ss+'o.is')<0);};
Firefox將顯示:
function() {
s = o.isJsMinified.toString(), ss = "s= ";
return s.indexOf(ss + "o.is") < 0;
}
該函數在Firefox失敗,它總是 '表示' 它不被壓縮。有沒有人知道這方面的解決辦法?
爲什麼對GS downvote有人這個封閉的話題? – Codebeat
不要污衊你的問題,特別是有現有答案的問題。我在這裏回滾了您的修改,但請不要再這樣做。 –