2014-02-18 6 views
1

내 응용 프로그램은 HTML5 appcache로 오프라인 작업하도록 설계되었습니다. 사용자가 로그인 인터페이스를 통해 인증 될 때까지 appcache를 다운로드 할 수 없게하는 방법이 있습니까? 이렇게하면 유효한 사용자가 페이지에 액세스하고 다른 사용자가 사용하는 장치로 응용 프로그램을 캐싱하지 못하게하는 경우에만 appcache가 만들어집니다. 이것이 가능한가요, 그렇다면 어떻게?사용자가 로그인 할 때까지 브라우저로 HTML5 ApplicationCache 생성 금지

P. 나는 다음을 시도했다 :

$window.applicationCache.addEventListener('checking', function(event){ 
    event.preventDefault(); 
    // or 
    event.abort(); 
}, false); 

// and the following way 

window.addEventListener('load', function(event) { 
    window.applicationCache.addEventListener('checking', function(e) { 
    window.applicationCache.abort(); 
     e.preventDefault(); 
    }, false); 
}, false); 

// and even this 

window.applicationCache.addEventListener('downloading', function(e) { 
    window.applicationCache.abort(); 
    e.preventDefault(); 
}, false); 

위의 어떤 것도 동작하지 않는 것처럼 보이지만, 브라우저는 실행될 때 여전히 appcache를가집니다.

답변

1

테스트하지는 않았지만 iframe을 사용하여 응용 프로그램 캐시를 채울 수 있다고 생각합니다. 이 페이지의 소스를 보시고이 예제를 실제로보십시오.

http://appcache-demo.s3-website-us-east-1.amazonaws.com/offline-iframe/

그래서, 당신의 시나리오에 대한 프로그래밍 방식의 로그인이 완료 번만 매니페스트에 대한 링크가 포함 된 iframe이를 추가 할 수있다. 그런 다음 로그인 페이지를 해당 매니페스트의 일부로 포함 할 수 있으므로 나중에 로그인해도 성공적으로 로그인 한 사용자의 방문은 오프라인 일 때도 작동합니다.

+0

답변 해 주셔서 감사합니다. iframe을 사용하지 않고이를 달성 할 수있는 방법이 있습니까? – JRulz