조금 전에 어떤 사이트 들어가서 분석(?)을 하다가,
함수에 이런 형태(내용은 새로 구성했습니다)의 내용이 보였다.
...
<script>
function show110202_1(ev) {
var ov='', ove;
ov+='<'+'br/>userid : '+ev.getAttribute('userid');
ov+='<'+'br/>tistory : '+ev.getAttribute('tistory');
ov+='<'+'br/>egloos : '+ev.getAttribute('egloos');
ov+='<'+'br/>cyLog : '+ev.getAttribute('cyLog');
ov+='<'+'br/>minihome : '+ev.getAttribute('minihome');
ove=ev.getElementsByTagName('a');
if ((ove.length)&&(ove[0].className=='output')) ove[0].innerHTML=ov; else alert(ov);
}
</script>
<div userid=killofki tistory=http://killofki.tistory.com egloos=http://killofki.egloos.com cyLog=http://www.cyworld.com/klfk cyblog=http://www.cyworld.com/killofki_ minihome=http://www.cyworld.com/killofki ><input type=button onclick=show110202_1(this.parentNode); value="showdivProfile" /><a class=output></a></div>
...
...
<script>
function show110202_2(ev) {
function trailev() {
// ar0 -0, ar0 -1, ar1 -0, ar1 -1, ...
// arx -0 : 앞이름, arx -1 : getAttribute 적용변수
var ar=arguments, i, ov='';
for (i=0; i<ar.length; i+=2)
ov+='<'+'br/>'+ar[i]+' : '+ev.getAttribute(ar[i+1]);
return ov;
}
var ov, ove;
ov=trailev(
'userid', 'userid'
, 'tistory', 'tistory'
, 'egloos', 'egloos'
, 'cyLog', 'cyLog'
, 'minihome', 'minihome'
);
ove=ev.getElementsByTagName('a');
if ((ove.length)&&(ove[0].className=='output')) ove[0].innerHTML=ov; else alert(ov);
}
</script>
<div userid=killofki tistory=http://killofki.tistory.com egloos=http://killofki.egloos.com cyLog=http://www.cyworld.com/klfk cyblog=http://www.cyworld.com/killofki_ minihome=http://www.cyworld.com/killofki ><input type=button onclick=show110202_2(this.parentNode); value="showdivProfile" /><a class=output></a></div>
...
...
대충 이런 형식으로...
( 물론, 지금의 경우 getAttribute 에 들어가는 변수와 소개명이 같으니 더 줄일 수도 있지만,
나중에 사용자명, 티스토리...처럼 바꿔야할 때도 있을테니...)
1)
지금의 방법은 해당 사용하는 함수가
적용될 함수 내에서만 가능하다는 문제점(?)이 있기는 한데,
뭐... 밖으로 끌어내는 방법도 여러가지가 나올 수 있다.
(예를 들면, ar[0]=ev, ar[1]=ar0-1, ar[2]=ar0-2, ... 형식으로...)
...
한창(?)때 기억으로 돌아가보면... (웹진 게시판지기시절...)
2)
함수내함수 선언법을 몰라서,
무작정 밖으로 끌어내는 방법으로만 함수를 만들었다. (함수외함수...?)
*예시*
function trailevOut() {
// ev, ar0 -0, ar0 -1, ar1 -0, ar1 -1, ...
// arx -0 : 앞이름, arx -1 : getAttribute 적용변수
var ar=arguments, i, ov='', ev;
ev=ar[0];
for (i=1; i<ar.length; i+=2)
ov+='<'+'br/>'+ar[i]+' : '+ev.getAttribute(ar[i+1]);
return ov;
}
3)
게시판지기가 여러명인 경우가 있어서,
수정하기 쉬우라고(?) 저런 함수형식을 만들기도 했다.
4)
게시물 길이 압축을 위해
저렇게 만들기도 했다.
(대략, 50% 정도의 효율...?)
5)
타박도 참 많이 받았다...
웹브라우져마다 보이는 형태가 다른 경우가 있으니... (속도가 느려지는 현상 포함...)
스크립트는 미리보기 지원이 안되는 문제도 있으니까...
...
이 방법에 대해, 살짝 경계해야할 부분은,
6)
함수내 함수의 경우, 변수전달에는 좋지만,
함수내함수를 구축하는 과정에서
사용되는 변수를 "선언"하는 과정이 포함되
살짝 느려질 수 있다.
원함수 (위의 예제중 아래쪽인 show110202_2() ) 를
한두번 호출하는 정도라면 문제가 되지 않겠지만,
7)
원함수를 한번(?)의 스크립트로 여러번 반복호출해야한다면
(음... 예를들어 for(i=0; i<100; i++) show100202_2(); 같은 형태랄까...)
함수내함수가 여러번 구축되어 느려지기 쉬우니
변수 "선언"을 줄일 수 있는 방법을 고민해야할 것 같다.
(전역선언을 해놓고 사용한다든지, 함수내 함수가 아닌, 함수 외 함수로 형태를 바꾼다든지...)
8)
선언하기 위해 함수내함수를 선언하는 경우도 있다.
여러번 반복구축하는 것이 아니니, 그럴 땐 맘 놓고 서술해도 될 듯.
...
smallLet killofki@.
ps... 서술자의 지식이 짧아 "함수내함수", "반복함수"...등의 표현을 사용합니다.
나중에 수정은 하지 않겠지만, ... 뭐... 다른 표현방법이 나온다면 좋겠네요 ㅎㅎ;...
함수에 이런 형태(내용은 새로 구성했습니다)의 내용이 보였다.
...
<script>
function show110202_1(ev) {
var ov='', ove;
ov+='<'+'br/>userid : '+ev.getAttribute('userid');
ov+='<'+'br/>tistory : '+ev.getAttribute('tistory');
ov+='<'+'br/>egloos : '+ev.getAttribute('egloos');
ov+='<'+'br/>cyLog : '+ev.getAttribute('cyLog');
ov+='<'+'br/>minihome : '+ev.getAttribute('minihome');
ove=ev.getElementsByTagName('a');
if ((ove.length)&&(ove[0].className=='output')) ove[0].innerHTML=ov; else alert(ov);
}
</script>
<div userid=killofki tistory=http://killofki.tistory.com egloos=http://killofki.egloos.com cyLog=http://www.cyworld.com/klfk cyblog=http://www.cyworld.com/killofki_ minihome=http://www.cyworld.com/killofki ><input type=button onclick=show110202_1(this.parentNode); value="showdivProfile" /><a class=output></a></div>
...
...
뭐라고할까... 좀 적게 표현해서 저만큼이지만,
생각보다 양이 많았더라는...
...
그래서(?) 예전에 자주 써먹어왔던
arguments 형식의 연속서술표현(?)방법으로 저걸 바꿔보자...는 생각을 해봤다.
...
<script>
function show110202_2(ev) {
function trailev() {
// ar0 -0, ar0 -1, ar1 -0, ar1 -1, ...
// arx -0 : 앞이름, arx -1 : getAttribute 적용변수
var ar=arguments, i, ov='';
for (i=0; i<ar.length; i+=2)
ov+='<'+'br/>'+ar[i]+' : '+ev.getAttribute(ar[i+1]);
return ov;
}
var ov, ove;
ov=trailev(
'userid', 'userid'
, 'tistory', 'tistory'
, 'egloos', 'egloos'
, 'cyLog', 'cyLog'
, 'minihome', 'minihome'
);
ove=ev.getElementsByTagName('a');
if ((ove.length)&&(ove[0].className=='output')) ove[0].innerHTML=ov; else alert(ov);
}
</script>
<div userid=killofki tistory=http://killofki.tistory.com egloos=http://killofki.egloos.com cyLog=http://www.cyworld.com/klfk cyblog=http://www.cyworld.com/killofki_ minihome=http://www.cyworld.com/killofki ><input type=button onclick=show110202_2(this.parentNode); value="showdivProfile" /><a class=output></a></div>
...
...
대충 이런 형식으로...
( 물론, 지금의 경우 getAttribute 에 들어가는 변수와 소개명이 같으니 더 줄일 수도 있지만,
나중에 사용자명, 티스토리...처럼 바꿔야할 때도 있을테니...)
1)
지금의 방법은 해당 사용하는 함수가
적용될 함수 내에서만 가능하다는 문제점(?)이 있기는 한데,
뭐... 밖으로 끌어내는 방법도 여러가지가 나올 수 있다.
(예를 들면, ar[0]=ev, ar[1]=ar0-1, ar[2]=ar0-2, ... 형식으로...)
...
한창(?)때 기억으로 돌아가보면... (웹진 게시판지기시절...)
2)
함수내함수 선언법을 몰라서,
무작정 밖으로 끌어내는 방법으로만 함수를 만들었다. (함수외함수...?)
*예시*
function trailevOut() {
// ev, ar0 -0, ar0 -1, ar1 -0, ar1 -1, ...
// arx -0 : 앞이름, arx -1 : getAttribute 적용변수
var ar=arguments, i, ov='', ev;
ev=ar[0];
for (i=1; i<ar.length; i+=2)
ov+='<'+'br/>'+ar[i]+' : '+ev.getAttribute(ar[i+1]);
return ov;
}
3)
게시판지기가 여러명인 경우가 있어서,
수정하기 쉬우라고(?) 저런 함수형식을 만들기도 했다.
4)
게시물 길이 압축을 위해
저렇게 만들기도 했다.
(대략, 50% 정도의 효율...?)
5)
타박도 참 많이 받았다...
웹브라우져마다 보이는 형태가 다른 경우가 있으니... (속도가 느려지는 현상 포함...)
스크립트는 미리보기 지원이 안되는 문제도 있으니까...
...
이 방법에 대해, 살짝 경계해야할 부분은,
6)
함수내 함수의 경우, 변수전달에는 좋지만,
함수내함수를 구축하는 과정에서
사용되는 변수를 "선언"하는 과정이 포함되
살짝 느려질 수 있다.
원함수 (위의 예제중 아래쪽인 show110202_2() ) 를
한두번 호출하는 정도라면 문제가 되지 않겠지만,
7)
원함수를 한번(?)의 스크립트로 여러번 반복호출해야한다면
(음... 예를들어 for(i=0; i<100; i++) show100202_2(); 같은 형태랄까...)
함수내함수가 여러번 구축되어 느려지기 쉬우니
변수 "선언"을 줄일 수 있는 방법을 고민해야할 것 같다.
(전역선언을 해놓고 사용한다든지, 함수내 함수가 아닌, 함수 외 함수로 형태를 바꾼다든지...)
8)
선언하기 위해 함수내함수를 선언하는 경우도 있다.
여러번 반복구축하는 것이 아니니, 그럴 땐 맘 놓고 서술해도 될 듯.
...
smallLet killofki@.
ps... 서술자의 지식이 짧아 "함수내함수", "반복함수"...등의 표현을 사용합니다.
나중에 수정은 하지 않겠지만, ... 뭐... 다른 표현방법이 나온다면 좋겠네요 ㅎㅎ;...
'compress' 카테고리의 다른 글
반복필터 추출] 1bit 라도 절약이 될지 짧게(?) 확인해보기... (0) | 2011.02.13 |
---|---|
script 코드 자체를 압축하다가... (IE, Chrome 전용) (0) | 2009.12.19 |
소형 압축...2 (0) | 2009.09.07 |
소형 압축방법... (0) | 2009.09.06 |