Ajax 방식의 하이브리드 어플리케이션을 구현할때
IOS Webview에서 location.href = url; 으로 다른페이지로 이동후
이전 페이지 재진입시 javascript function이 onload, 등등 호출이 안되는 이슈가 있다.
이유는 캐쉬에 있는 데이터로 데이터로 페이지 재구성됨...
안드로이드는 호출이 되고... ㅠㅠ
그때 해결방안.
onload 를 쓰지말고 onpageshow 함수를 쓰자.
onpageshow | script | 창이 나타나면 스크립트 실행 |
-
<script type="text/javascript">
-
window.onpageshow = function(){
-
initializeView();
-
}
-
</script>
page 재진입시 fuction 이 잘 호출된다.
하지만...
각 element 에 등록한 이벤트 핸들러나 리스너 (.on() 이나 .delegate() 등등등 )가 재 등록 되는 이슈가있다. 버튼을 누르면 두번눌림. (Android의 경우)
html 에서 직접 구현한 onclick 함수는 상관이 없다.
아래는 이벤트 함수 .live는 쓰지 맙시다...
$(elements).delegate(selector, events, data, handler); // jQuery 1.4.3+ $(elements).on(events, selector, data, handler); // jQuery 1.7+
이벤트 리스너는 JQuery 에 맞는 함수를 쓰자
초기화 호출되는 함수에서 핸들러를 초기화 시켜주자.
-
var initializeView = function() {
-
-
$(document).off();
-
.............
-
}
끝.
'javascript' 카테고리의 다른 글
[위키] 데코레이터 패턴 (0) | 2012.12.27 |
---|---|
[위키]팩토리 메서드 패턴 (0) | 2012.12.27 |
JavaScript-Garden 한글 (0) | 2012.08.17 |
JSDT (Java script 코드 어시스트) (0) | 2012.08.17 |
javascript parttern (모듈 패턴!!!!! 꼭알자) (3) | 2012.08.07 |