Background Image의 깜빡거리는 현상 없애기 - Internet Explorer 6 서비스팩1

2008/01/07 17:40
대표적으로 어떤 엘리먼트를 오버시에 특정 backgroundImage가 나타나는 경우

IE6에서는 그 이미지 파일을 다시 읽어서 불러들이기 때문에 그 약간의 시간적 차이, 틈으로 인해

깜빡거리는 현상이 나타납니다.

깜빡거리는 현상을 해결해주는 스크립트 입니다.

이스크립트는 MSDN에서 메모리낭비를 막는 용도로 추천하는 내용입니다.

꼭 깜빡거리는 현상때문에 사용하는것이 아니더라도 불필요한 메모리 낭비를 도와줍니다.

이 스크립트는 IE6 서비스팩1이상에서 사용가능합니다.

서비스팩1 이상에서 설치되는 파일을 사용하여 해당 hotfix를 활성화 시키는 방식으로

backgrundImage를 cache하게 만들어 깜빡거리는 현상을 없애줍니다.

IE6에만 적용되는 스크립트 이므로 IE6에서만 작동하게끔 스크립트가 작성되어있습니다.

브라우저구분은 navigator.userAgent 가 아닌 Object Dom Detection Method를 통하여

IE6에만 적용합니다.

<script type="text/javascript">
(function(){
    /*Use Object Detection to detect IE6*/
    var m = document.uniqueID /*IE*/
    && document.compatMode /*>=IE6*/
    && !window.XMLHttpRequest /*<=IE6*/
    && document.execCommand ;

    try{
        if(!!m){
            m("BackgroundImageCache", false, true) /* = IE6 only */
        }
    }catch(oh){};
})();
</script>



관련내용 :
IE MSDN - Available memory decreases when you view a Web page in Internet Explorer 6 Service Pack 1
해외포스팅
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
블로그코리아에 블UP하기

png 파일 IE6에서 알파값 제대로 적용하기

2007/11/23 00:57

PNG 파일의 알파값 IE6에 적용시키기

img 로 쓰인 png 이미지 파일에 알파값 적용시키기

아래의 자바스크립트 함수를 png 파일을 사용하는 문서에 선언한다.
이 함수는 png24라는 클래스명을 가진 엘리먼트에 IE의 필터를 사용하여 알파값을 적용시키는 기능을 한다.


function setPng24(obj) {
	obj.width=obj.height=1;
	obj.className=obj.className.replace(/\bpng24\b/i,''); 
	obj.style.filter =
	"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
	obj.src='about:blank;';
	return '';
}

png 파일을 사용하는 문서의 CSS에 다음을 선언한다.
우리가 위에서 선언한 setPng24함수를 실행시키는 기능을 한다.

.png24 {tmp:expression(setPng24(this));}

사용방법

img 태그에 png24라는 클래스명을 넣어주기만 하면 끝

<img src="image.png" alt="" class="png24" />

background-image로 쓰인 png 이미지 파일에 알파값 적용시키기

특정선택자를 가리키고 아래의 속성을 정의한다

h2 {background:url('image.png') no-repeat top left;} /* 일반적인 png 파일의 background image 사용법 */
* html h2 {background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png', sizingMethod='crop'); /* IE6 에서 background image로 쓰인 png 파일에 필터를 적용함 */ }

사용방법

기본적으로 png파일을 CSS에서 background-image로 처리한 후 IE6에서만 적용하기 위해 IE핵인 * html 을 선언하여 해당 선택자를 가리키기만 하면 끝.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
TAG IE6, PNG, 알파
블로그코리아에 블UP하기

asp에서 세션변수가 사라진다?

2007/06/10 16:22
모처럼 asp를 이용하여 작업하던중에 특정상황에서 세션변수가 사라지는 이상한 현상때문에

계속 삽질하던중에 asp에서 세션변수가 사라지는 다양한 사례에 대해서 알게되었다.

한글문서중에서는 이러한 문제에 대한 게시물이나 웹페이지를 찾아볼수 없어서 좀 곤란했는데

다행이 구글링을 통해 외국포럼, 포스팅에서 세션변수가 사라지는 현상에 대한 중요한 자료를 얻을수 있었다.


내가 경험한 사례는 다음과 같다.

(called test.asp):

<html><head><title>test session</title></head>
<body>
<%
response.write "session var should be 123. var=" & session("var") &
"<br/>"
%>
<a href="test2.asp" >blah</a>
</body></html>


(called test2.asp):

<html><head><title>test session</title></head>
<body>
test2<br/>
<%
response.write "session var should be empty. var=" & session("var") &
"<br/>"
session("var")=123
response.write "session var should be 123. var=" & session("var") &
"<br/>"
%>
</body></html>


The following html tree simulates the other site with the first site
embedded in it (and they're not in the same domain...):

<html>
<head><body></body></head>
<body>
blah blah<br>
<iframe id="InnerIframe" src="test.asp" width=600 height=400></iframe>
<br>blah blah<br>
</body>
</html>



예제출처 (http://www.thescripts.com/forum/thread512527.html)


A라는 도메인에서  iframe을 이용해서 B도메인에 있는 페이지를 불러왔다.

불려지는 B도메인의 웹페이지는 session변수를 생성하는데

iframe내에서 다른 B도메인내의 웹페이지로 이동을 하면

세션변수가 사라지는 현상이 발생한다.

Session.sessionID 를 이용해서 확인해보면 계속해서 새로운 sessionID가 생성됨을 확인할수 있었다.

한마디로 세션이 저장이 되지않고 계속해서 세션쿠키가 새로발급되는 현상이다.

내가 주로 사용하는 php에서는 전혀 이런경우를 볼수 없어서 더더욱 당황스러웠다.

iframe뿐만 아니라 frame에서도 마찬가지였다.

또한 이 문제는 FF에서는 정상적으로 세션변수가 유지되는 반면에 IE6에서는 세션변수가 사라졌다.


해결방법 (http://classicasp.aspfaq.com/general/why-won-t-my-session-variables-stick.html)

위의 링크를 따라가면 더더욱 많은 세션변수가 사라지는 현상과 그 해결방법에 대해나와있으니

참고하길 바라며 내가 겪은 세션변수 사라지는 현상의 해결방법은 다음과 같았다.


Internet Explorer 6에서 FRAMESET을 사용하면 세션 변수가 손실된다

MSDN기술문서 KB #323752

정확히 내가 겪은 사례와 동일한 제목의 기술문서.

뭐 MSDN이 친절하게 한글로 번역되어있으니 기술문서를 따라가면 원인과 해결방법에 대해 쉽게 알수있다.

한마디로 쿠키발급에 관한 정책문젠데

나는

response.addHeader "P3P","CP=""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"""

위의 헤더를 추가해줌으로써 간단히 끝마쳤다.

작업끝!

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
블로그코리아에 블UP하기

최근댓글

최근 트랙백