2011-03-24 3 views
1

다른 파일이 사이트에 계속로드 될 때 javascript 및 css 파일을 언로드하지 않도록 사이트에 영향을 주는지 알고 싶습니다. 잘 메신저와 같은 페이스 북과 같은 기능을 만드는 메신저, 그래서 만약 내가 자바 스크립트를 언로 드해야 궁금해서/새 페이지 호출에 CSS 리소스.자바 스크립트를 언로드해야합니까?

조금 더 설명 : ok facebook.com으로 가면, 백그라운드에서 ajax로 페이지가로드되기 시작합니다. 어떤 페이지/프로필/섹션을 클릭하면 필요한 CSS/javascript가로드되지만, 더 이상 필요하지 않은 필수 자바 스크립트를 언로드할지 여부는 확실하지 않습니다. 그래서 이전에로드 된 자바 스크립트를 떠나야하는지, 아니면 제거해야하는지, 제거하는 것이 어려운 부분이 아니라 그냥 큰 사이트에 대해 조금 복잡 할 수도 있다는 생각이 들었습니다.

어떤 장점/단점?

+0

당신이하려는 일에 대해 더 자세한 정보를 게시 할 수 있습니까? 나는 당신의 질문을 이해하지 못합니다. – UnkwnTech

+0

"언로드 js 및 css 파일"이란 무엇입니까? – Andrey

+0

죄송합니다. 추가 설명이 추가되었습니다. – Basit

답변

1

"언로드"할 수있는 유일한 방법은로드 된 스크립트에 의해 생성 된 스크립트 개체의 설정을 해제하는 것입니다.

그래서 스크립트 인 경우 :

var awesome = { 

    init : function() 
    { 
     /** init stuff **/ 
    }, 

    do_stuff : function() 
    { 
     /** do awesome stuff **/   
    } 

} 

당신은 기술적으로 같은 일을하여 "언로드"수 :

awesome = null; 

그러나 당신이 당신의로드 스크립트 꽤 깔끔해야 할 것이다. 여전히 이벤트 핸들러가 여전히 dom의 일부 요소에 연결되어있는 잠재적 인 문제가 있습니다.

+0

나중에 이벤트 핸들러에 대해 걱정하지 마세요. HTML이 언로드 파일과 함께 변경 될 것이므로 .. 모든 이벤트가 라이브 이벤트가 아닌 한 가정합니다. – Basit

+0

@Basit. 예, 아마도 테스트를 통해 알 수 있습니다. 실제로 더 나은 접근 방법은 스크립트를로드 된 상태로 유지하고 어떤 스크립트가로드되었는지 기록하고 필요에 따라 필요할 때만로드하는 것입니다. – Ben

+0

JQuery를 사용하여 DOM에서 요소를 제거하면 이벤트 핸들러가 제거되고 필요한 정리 작업도 수행됩니다. .innerHTML과 같이 암묵적으로 제거하면 누수가 발생할 수 있습니다. –

0

먼저 스크립트를로드해야하는지 여부를 결정하는 로직을 배치해야합니다. 특정 페이지 /보기에 필요하지 않은 경우로드하지 마십시오.

내가 "생각할 수있는"언로드하는 유일한 방법은 IMHO 같은 끔찍한 것처럼 보이는 페이지를 다시로드하는 것입니다.

관련 문제