Ajax Mistakes
Ajax는 maps.google.com, colr.org, backpackit.com 등의 신세대 웹 어플리케이션을 등장시킨 놀라운 기술이다. 그러나 Ajax의 힘은 기존의 서버 상태의 문제나 서버의 부하문제 만큼이나 만만치않은 UI 쪽의 문제를 가져왔다.
나는 개발자들이 Ajax를 사용할때 종종 만들어내는 실수들이 담긴 많은 양의 프로그램을 접해봤다. 자바스크립트는 그 자체로 위험한 UI기술이지만 나는 Ajax 개발자들이 만들어내는 문제들에 대한 목록을 유지하고 있다.
Mistakes:
- Not giving immediate visual cues for clicking widgets.
만약 사용자가 Ajax의 기능을 사용하는 버튼이나 링크를 클릭했을때 프로그램은 어떤한 동작이 지금 일어나고 있다는 시각적인 증거를 보여주어야 한다. 이것의 예는 GMai에서 사용자가 어떤 일을 하면 브라우져의 오른쪽 위에 나타나는 빨간색 박스이다. 이것은 Ajax가 새로운 페이지를 로딩하기위해 일반적인 Web UI를 이용하는것이 아니라는것을 말해준다.
- Breaking the back button
"뒤로가기"버튼은 일반적인 웹사이트에서 상당히 큰 비중을 차지하는 인터페이스이다. 그러나 불행가게도 이 "뒤로"버튼은 자바스크립트와는 잘 들어맞지 않는다. "뒤로가기" 기능을 계속 사용하는 것은 순수한 자바스크립트 웹 에플리케이션이 제대로 젝동하지 않는 주된 이유이다.
- Changing state with links (GET requests)
내가 이전의 글에서 언급한것 처럼 Ajax 어플리케이션은 GET 오퍼레이션은 상태를 바꾸지 않는다고 생각한 사용자들에게 많은 문제를 가져왔다. 링크의 상태가 어플리케이션의 상태를 바꾸는데 사용될때 로봇들 뿐만 아니라 링크를 따라서 서핑을 하는데 익숙해진 사용자들에게 혼란을 주었다.
- Blinking and changing parts of the page unexpectedly
Ajax의 첫글자 A 는 asynchronous(비동기)를 의미한다. 비동기 메시지의 문제는 그것이 예상하지 못한 때에 결과가 나타나기 때문에 혼란스러워 진다는 것이다. 비동기적인 화면의 변화는 한정된 범위내에서만 일어나야 하며 주의깊게 고려되어야 한다.
- Not using links I can pass to friends or bookmark
웹사이트의 또다른 큰 특징은 내가 URL들을 다른 사람들에게 전달할 수 있고 그것을 받은 사람은 내가 보는것과 똑같은 것을 볼수 있다는 점이다. 또한 그것을 즐겨찾기 해 둘수 있고 나중에 그것을 따라 다시 방문 할 수 있다는 것이다. 자바스크립느, 그러므로 Ajax는 이러한 사용법에 대해 심각한 문제를 일으킨다. 자바스크립트는 서버로 부터 받은 페이지가 아닌 동적으로 생성된 페이지이기 때문에 URL는 이러한 순환을 끊어 버리게 되면 네비게이션의 목록(즐겨찾기의 용도)으로 사용할 수도 없다. 이러한 기능은 버리기에는 너무나 아쉬운 기능이다. 때문에 많은 Ajax 어플리케이션은 변하지 않는 링크들을 포함하고 있다.
- Too much code makes the browser slow
Ajax는 매우매우 재미있고 흥미있는 자바스크립트 어플리케이션을 만드는 방법을 제시했다. 그러나 불행히도 "흥미있는"이란 말은 종종 더 많은 코드가 실행될 필요가 있다는 뜻이다. 실행할 코드가 많아진다는 말은 브라우져가 할일이 많아 진다는 말이고 만약 제대로 설계되지 않은 자바스크립트로 가득찬 웹사이트를 제대로 돌리려면 보다 강력한 컴퓨터가 필요하다는 말이다. CPU의 문제는 사실 과거에 자바스크립트의 기능 제약 문제를 일으켰지만 CPU 성능이 좋아진 지금에도 이런 문제는 사라지지 않았다.
- Inventing new UI conventions
Ajax를 사용하면서 생기는 가장 큰 문제는 이것이다. '확실하지 않은 이것을 클릭하면 다른 확실하지 않은 결과를 일으킨다.' 물론, 일정기간동안 어플리케이션을 사용한 유저는 이것을 클릭하고 마우스를 누른 상태에서 저쪽으로 드레그하면 그것이 영원히 저쪽으로 가 있다는 것을 배운다. 그러나 이러한 것은 일반적인 것이 아니기 때문에 당신은 이러한 습득 시간을 늘리고 당신의 프로그램을 점점 어렵게 만드는 것이다. 이것은 어떠한 프로그램이던기 사용자들이 기피하게 만드는 이유이다.
- Not cascading local changes to other parts of the page
Since Ajax/Javascript gives you such specific control over page content, it's easy to get too focused on a single area of content and miss the overall integrated picture. An example of this is the Backpackit title. If you change a Backpackit page title, they immediately replace the title, they even remember to replace the title on the right, but they don't replace the head title tag with the new page title. With Ajax you have to think about the whole picture even with localized changes.
- Asynchronously performing batch operations
Sure with Ajax you can make edits to a lot of form fields happen immediately, but that can cause a lot of problems. For example if I check off a lot of check boxes that are each sent asynchronously to the server, I lose my ability to keep track of the overall state of checkbox changes and the flood of checkbox change indications will be annoying and disconcerting.
- Scrolling the page and making me lose my place
Another problem with popping text into a running page is that it can effect the page scroll. I may be happily reading an article or paging through a long list, and an asynchronous javascript request will decide to cut out a paragraph way above where I'm reading, cutting my reading flow off. This is obviously annoying and it wastes my time trying to figure out my place.
댓글 없음:
댓글 쓰기