요즘 prototype에서 자주 사용할만것들을 짤라서 모으고 있는데  Event.unloadCache()라는걸 확인했다.

처음볼땐 그냥 아무것도 아니구나 하고 넘어갔는데 이번에 이벤트를 추가하는것을 만들려고 확인중 엄청난 일을 하는것을 알게됬다.

알고 보니 ie에서 attachEvent을 사용할때 unload시 detachEvent을 안해주면 가비지컬랙션이
회수를안하고 그냥 브라우져에 상주해서 그것을 가비지 컬랙션이 회수할수 있게끔하는 역활을 하는것이였다.(관련글)-물론 브라우져를 닫으면 상관없음.
(JQuery는 귀찮은지 고전적인 방법으로 매소드 추가)

가끔 여기저기에 있는 자바스크립트소스를 확인해보는데 특정프래임워크를 사용하지 않는곳은
거의 unloadCache와 같은 기능을 해주는곳이 없다.

이벤트를 추가하는것은 common method라 굉장히 많이 쓰이는데도 안하는거 보면 별차이가 없나?..:(

아..나만 몰랐나..ㅡㅡ;

참고글
dean.edwards의 add-event
Understanding and Solving Internet Explorer Leak Patterns
addEvent() considered harmful

Posted by 전용우
,
얼마전 친구한데 파이어버그을 알져줬는데 다시 하는것 확인해보니...

냅다 브레이크 포인트만 걸고 확인하는것이였다..ㅡㅡ;

그래서 열심히 설명해줬는데..이제서야 잘쓰고 있네.

마침 다른 친구들한데도 알려주려고 자료를 만드는중...벌써 사용법을 자세하게 정리한글
발견.ㅡㅡ;

혹, 아직도 브레이크포인트만 냅다 걸고 계신분들이 있다면 꼭 한번 읽어 보시길:)
Posted by 전용우
,
지난 화요일날 webtech의 css세미나를 다녀온적이 있다.

내용도 좋았고 나름 재미있는 시간이였다.

거기서 각종팁들을 알져 줬는데 그중에 하나가 각각 짜른 이미지가 아니라
통이미지로 올려서 이미지들을 숨기는 방법을 알려줬다.

강사(임종혁님)가 말하길 이미지의 용량보다 이미지갯수가 페이지를 로딩하는데 더 큰 문제라고 하시면서 위와 같은 팁을 알려줬는데 바로 오늘 에이시안에 해당들이 올라왔다.

한번 확인해 보시길.^^

Posted by 전용우
,
Posted by 전용우
,
22장.Eager Loading

이번장은 perloading에 대해서 나온다.
예를들면 post 1---* comment란 관계가 있는데.(굳이 1--*관계가 아니라도 상관없음.)
post = Post.find(:all)

for post in @post
    post.name
    post.comment.name
do

이렇식으로 하면 post.comment.name 이부분이 for문을 돌면서 매번 패칭을 한다.
그래서 이방법을 해소하기 위해 :include을 사용하면 미리 해당 건을 가져 오기 때문에
한번의 패칭으로 같은 효과를 낼수 있다.

post = Post.find(:all)  -> post = Post.find(:all,:include=>:comments) 로 바꿔주면 됨.

하지만 이방법은 left outer조인이 지원을 해야한다.즉,오라클 8i는 안됨.


23장.Counter Cache Column

이번장은 counter cache기법이다.
has_many 관계에서 이글에 딸린 커멘트수 같은걸 구할때 매번 조인을해서 구하는것이
아니라 캐싱하는기법.

자식 액티브래코더에 belongs_to :부모이름_cache => ture을 정하고
부모테이블에 자식이름_count 컬럼을 만들어 자동으로 캐싱됨.

24장.The Stack Trace

stack trace로 디버깅하는방법.
좋긴한데... textmate가 있어야한다.아쉽..RDT로는 안되나?..한번 확인해봐야겠다

25장.SQL Injection

다른 언어와 같이 파라메터를 바인딩하는것으로 sql injection을 막는방법.
일반 언어와 같음.
Posted by 전용우
,

Dom 사용하기.

프로그래밍 2007. 4. 21. 07:12
Chris Heilmann라는 사람의 Dom Scripting강의 약 10분정도로 dom에 대해
설명함. 일단 중요한건 쉬움.:)

Beginning JavaScript with DOM Scripting and Ajax이란 책을 쓴 저자.
해당블로그에 많은 내용이 있으니 한번 방문해보세요.

Posted by 전용우
,
19장~21장은 관리자 개발시 보통일반하면과 따로 개발하는데 이것을 좀더 쉽게 개발하는
방식에 대해 설명함.(현재 진행중)

19.Where Administration Goes

첫번째로는 관리자 화면과 일반화면을 합치는 방법.


20.Restricting Access

필터링을 이용한 권한제어하기(필터링과 유저 핼퍼매소드가 핵심)

21.Super Simple Authentication

간단한 로그인을 통한 권한관리(한번 플러그인 깔아보고 해볼것)
Posted by 전용우
,
13장.Dangers of Model in Session

session에 모델을 넣으면 데이터베이스와 일치하지 않는경우가 발생됨.
그래서 id만을 저장하고 그이후에 fetch하는것이 올바른 방법.


14장.Performing Calculations on Models

associations에서 계산방법을 향상시키는 방법.


15장.Fun with Find Conditions

find_by 매소드를 이용하여 좀더 편하게 검색하기


16장.Virtual Attributes


이름과 같은 경우 성과 이름이 따로 떨어져 있는데
이름이란 가상속성을 만들어서 사용하는방법.


17장.HABTM Checkboxes

habtm에서 check box를 만드는방법.


18장.Looping Through Flash


flash는 보통 오류메세지를 보낼때 사용되는데
여러개의flash메세지가 보여질경우 loop을 이용하는 방법.
Posted by 전용우
,
10~12장은 Refactoring 하는 방법을 다룸.

10장.Refactoring User Name Part 1

이름을 리팩토링하는 기법.
자주 사용할만것 내용.
핼퍼 매소드와 정의매소드를 잘사용해야될것 같음.

11장.Refactoring User Name Part 2

TDD를 통한 리팩토링 기법.
좀더 루비스러운(?)코드로 바뀌는 과정.

12장.Refactoring User Name Part 3

testcase를 다시 리팩토링 하는 방법.
Posted by 전용우
,
7장.All About Layouts

layout 사용법
views/layout폴더에 application.rhtml을만들고
레이아웃을만들고 컨텐츠가 들어갈곳에 <%= yield %>로 하면 전체 레이아웃이 잡힘.
각 컨트롤러마다 레이아웃을 잡고 싶을경우
프로젝트명.rhtml로 만들면 자동으로 프로젝트명이 잡힘.
아니면 컨트롤러에서 layout "프로젝트명"으로 표시하면 해당 레이아웃이 적용.

그래서 사용자 마다 같은 페이지라도 레이아웃을 다르게 표현하고 싶을때가 있는데
그럴땐 심벌을 사용하여 적용.

render명령으로도 layout을 적용가능.

8장.Layouts and content_for

보통 application에서 해당 컨트롤러 레이아웃을 가져오는 방법을 사용하는데
특정 컨트롤러에서 application의 레이아웃을 바꾸고 싶을때가 있다. 그럴때
content_for의 핼퍼매소드를 이용하며됨.

9장.Filtering Sensitive Logs

비밀번호같은 중요한정보를 로그에 노출되지 않도록 filltering하는방법.
application 컨트롤러에
filter_parameter_logging "이름" 주면 logging에서 필터링되서 나옴.
(application에 적용하면 모두 적용됨)

Posted by 전용우
,