2005년 07월 23일
AJAX 이야기(2)
이전 포스팅에서 아크몬드님이 국내에서 AJAX 를 활용하는 곳을 못보셨다고 하셔서 네이버의 추천검색어 기능(익스전용)이 AJAX를 활용한 것이 아닌가 싶어서 소스를 분석해본 결과 AJAX 와는 상관없다는 것을 알았습니다.

그냥 아이프레임을 통한 처리더군요. 아이디어는 좋아지만 비표준 코드의 난무와 그로인한 익스전용 이라는 점이 별루.

지금 진행중인 프로젝트에 AJAX 를 꼭 적용시키고 싶군요.

사실 AJAX 가 엄청 어려운 기술은 아니라고 생각합니다.
단지 여러가지 기술을 모아서 패키지(?)로 만든 것이기 때문에 이것저것 알아야 하는 것과 각종 자료들이 대부분 영어로된 해외자료라는 점이 힘들뿐이죠.
이런 점에서는 웹표준이나 CSS 레이아웃에 대한 정보도 같은 처지라고 할 수 있겠네요. ㅎㅎ
(완벽한 번역기가 어서 빨리 나오면 좋겠습니다. 영어공부는 하기 싫어요. ㅠ_ㅠ)

!!! 기술적인 이야기 !!!

IE에서는 Msxml2.XMLHTTP 이라는 ActiveXObject 로 XML 을 읽어올 수 있고 불여우를 비롯한 다른 브라우저들은 XMLHttpRequest 객체를 이용해 XML을 읽어올 수 있습니다.

그런데 IE의 Msxml2.XMLHTTP 는 한번 읽어들인 XML 파일은 XML 파일을 수정하더라도 새로운 XML 을 읽어 들이는 것이 아니라 처음 읽어온 XML 파일을 캐시에서 계속 불러옵니다. ㅡㅡ;

덕분에 가뜩이나 영어 딸리는데 구글에서 조사해본 결과 원래 그렇답니다.

두가지 해결 방안이 있더군요. XML 파일을 읽어올때 매번 새로운 값을 넘겨서 읽어오는 것과 XML 파일 자체의 헤더에 캐시를 남기지 않도록 선언하는 방식입니다.

첫번째 방식은 플래시에서 캐시 파일 읽어오지 않도록 처리하는 방식과 같네요.(맘에 안들어 ㅠ_ㅠ)

두번째 방식은 별로 효과가 없다고 생각합니다. 헤더를 통해 캐시를 남기지 않도록 해도 IE는 남기더군요.
예전에 플래시 링크가 자꾸 캐시를 불러오길래 시도를 했던 방법인데 제대로 되지를 않았으니 마찬가지라고 생각됩니다.

그래서 결국은 첫번째 방식에 손을 들어줬습니다.
by -A2- | 2005/07/23 13:42 | 개발/플밍 | 트랙백(1) | 덧글(11)
트랙백 주소 : http://ani2life.egloos.com/tb/1570564
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 마법사의 일기장 at 2005/07/23 19:10

제목 : AJAX라는건!
http://www.adaptivepath.com/publications/essays/archives/000385.php 여기에 잘 설명되어있다. 독해하는 중간중간에 adaptive path라는게 막 있어서 이게 뭔가 사전적으로 만 해석 했는데, 흠..... 사이트 이름이었다니-_- 나도 AJAX가 무슨 컴포넌트일종인줄 알았더니, 그냥 기술이랄까... 구현방식의 하나 였다. 왠지 영어로 읽으니 더 이해가 잘 되는건 왜일까. 재미있는 기술이다. 페이지의 일부분만 동적으로 바꿀수 있다니. 테터에서 rss 긁......more

Commented by mage at 2005/07/23 14:15
첫눈의 추천 검색어 기능은 어떤지 모르겠군요. FF에서도 작동하던데요. AJAX.. 매우 매력적인 기술이군요.
Commented by yser at 2005/07/23 20:47
실무에 바로 ajax 를 쓰면 배보다 배꼽이 더 커집니다.
theyell 테스트 페이지에서 답글 달기 기능도 그걸로 구현했었는데, fallback 처리에 상당히 고심 했습니다. js 가 꺼졌을 경우를 만약 다 고려하신다면, 머리털 쥐어뜯고 휘발유 붓는 경험을 하시게 될 겁니다.
Commented by yser at 2005/07/23 20:51
캐시 문제는 저도 당황했던 부분인데, 헤더 선언으로 문제 해결은 되었습니다. 하지만 심리적으로도 안정감을 얻기 위해서라면 첫 번째 방법도 나쁘지 않을 듯. (고유 id 정도라면야)

오페라, 사파리, IE, FF 가 다들 미묘하게 xmlhttp 동작이 다릅니다. 오페라는 아직 미지원 기능도 있고 진정 웹권고안 준수를 하실 요량이라면.. 각오 단단히 하셔야 할 것으로 사료됩니다.
Commented by yser at 2005/07/23 23:25
Commented by -A2- at 2005/07/24 00:27
mage// 무척 매력적이죠. ㅎㅎ

yser// 이전 포스팅에서 이야기 했듯이 js가 꺼져도 사이트 이용에 전혀 문제가 없는 부분에 적용할 생각입니다.
js 를 꺼놔서 사이트가 돌아가지 않는다면 액티브엑스를 설치 안한다고 사이트를 이용하지 못하게 하는 것과 같다고 생각합니다.
그래서 AJAX 가 돌아가면 Plus 서비스를 js 가 안되더라도 이용에 무리 없게 할 것입니다.

구글맵 같은거야 일반 웹사이트와는 달리 특정목적의 프로그램이므로 js 가 돌아가야 함은 당연한 것이지만 일반 웹사이트를 이용하는데 js 가 안된다고 사이트 이용에 문제가 생기면 안된다고 생각합니다.
Commented by -A2- at 2005/07/24 00:36
yser// 올려주신 url 참고하였습니다. 실무적용여부를 떠나 이런 것을 토론 한다는 것 자체가 정말 좋습니다. :)

yser님 말씀처럼 AJAX 를 실무에 적용하되 브라우저별로 미묘한 차이도 있기 때문에 실무 프로젝트의 상당수를 AJAX 로 구현하는 것은 큰 문제를 일으킬 수 있겠습니다.
(뭐 국내는 익스에서만 돌아가면 땡이니까 쉽게 적용할 수 있겠는데요 ㅡㅡ;)

js 같은 경우도 관리자 페이지등에는 적극 사용하지만 일반 사용자가 이용해야 할 페이지는 자제 및 fallback 을 염두에 두고 있습니다.
Commented by yser at 2005/07/24 01:14
구글 맵 같은 경우 js 를 끄면 알림 메시지를 표시해주는군요. 반드시 js 가 필요하다며...

외국 페이지의 경우 아직도 가끔, '이 페이지는 js 를 쓰고 있습니다' 등으로 명시적인 표현을 하는 곳이 있습니다. 과거의 잔재 같은 거겠지만.. 친절하다고도 할 수 있겠죠. (일반인 중 상당수는 저게 뭔 말인지 이해 못하는 건 차치하고)

그런데 사실 fallback 을 고려할 필요가 별로 없기도 합니다. 하는 노력에 비해서 별 효과가 없거든요. 가령.. 일반적인 웹사이트는 핸드폰이나 PDA로 서핑할 일이 거의 없습니다. 원래 목적 자체가 인터넷이 되는 컴퓨터에서 보여지는 걸 기반으로 하니까요. 그래서, js 를 끄고 서핑할 컴퓨터 사용자가 없기 때문에 그게 노력한 바에 비해 별 효과가 없을 수도 있습니다. 이 점은 고려하시고.. 완벽을 기하지 마세요.
Commented by yser at 2005/07/24 01:14


js 끄고 서핑하는 건 국내 극소수의 일부 그룹 내에서 위에서 그렇게 시킨다고들 합니다. 개인 정보를 조금이라도 보호하겠다는 취지인지 뭔지 몰라도.. 그런 곳이 있다더군요, 정책상. 그런 걸 빼면 어차피 js 끄고 서핑할 사람이 없기 때문에... 좀 형평성이 안맞기도 합니다. fallback 을 고려할 시간이 가져다주는 이득이 있는가? 하는 문제죠. 핸드폰으로도 보여지고 싶은 페이지를 위해서, 라고 한다면.. 차라리 핸드폰 agent 를 감지해서 전용 페이지로 돌리는 게 낫지 않을까 생각도 합니다.
Commented by -A2- at 2005/07/24 12:47
yser// 네, 저두 완벽을 기할수는 없다고 봅니다. :)
언제나 그렇듯이 가능한 범위에서 힘닿는데 까지만요. ㅎㅎ
Commented by 백일몽 at 2005/07/31 01:47
새로 리뉴얼 한 다음 플래닛에 가시면
ajax 를 경험하실 수 있습니다.
Commented by 마젤란 at 2005/12/12 18:40
크크 여기서 도움을 받았어요.
감사합니다.
저도 익스가 자꾸 캐쉬만 보여주는거에 짜증나 있었거든요.

:         :

:

비공개 덧글



<< 이전 페이지 | 다음 페이지 >>