페이지 로딩 속도를 높이기 위해 로딩 자바 스크립트를 연기하도록 구성했습니다. 웹 사이트를 배포하기 위해 YIU 압축기를 사용하여 스크립트를 최소화하고 속도를 높이십시오. 두 가지 버전의 스크립트가있을 것입니다. 하나는 압축되고 원래 버전은 그렇지 않습니다. 예 : example-min.js 및 example.js. 일부 자바 스크립트는 기능이 제공 될 때만로드되며 때로는 더 많은 스크립트 (플러그인 아이디어)가 필요할 때로드됩니다.javascript가 YIU 압축기 (자바 스크립트)로 압축되어 있는지 확인합니다.
어쨌든 'host'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() 함수를 봐주세요. 그러나 파이어 폭스에 문제가있다. 원본 형식을 반환하지 않아 차이점을 발견 할 수 없다. 예를 들어
: // YUI 압축기에 의해 압축 :
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;
}
기능은 파이어 폭스에 실패, 그것은 항상 '말한다'그것은 압축되지 않습니다. 아무도 이것에 대한 해결 방법을 알고 있습니까?
왜 gs는이 닫힌 주제를 downvote 누군가? – Codebeat
질문, 특히 기존 답변이있는 질문을 부인하지 마십시오. 수정 사항을 롤백했으나 다시하지 마십시오. –