Gmail for Mobile HTML5 Series: Reducing Startup Latency
Javascript lazy load 를 하는 세가지 테크닉.
1. DOM Tree에 script element를 on the fly로 만든다.
2. XHR(XmlHttpRequest)의 응답을 eval() 한다.
3. 모바일 기기에서는 bandwidth는 좋지만 roundtrip 시간은 길다. 따라서 자바스크립트 파일을 하나로 모으고 스크립트를 전부 커멘트 처리한다. 자바스크립트 파일을 가져온다음 on the fly로 필요한 코드 부분의 커멘트를 제거한다.
네트웍이란 결국 bandwidth는 좋지만 roundtrip은 길다. 결국 접속을 수회 맺는 것은 좋지않다는 일반적인 사실이다.
예를들어 fine grained method를 만드는 것은 coarse grained method만 있는 경우에 비해 적은 수의 메소드로 다양한 비즈니스 로직을 구사하게 해주므로 좋지만, fine grained method가 네트워크 RPC를 유발한다면 그런 메소드 여럿을 함부로 호출하게 될 경우 결국 애플리케이션의 성능은 저하된다. 따라서 throughput 이 중요하다면 요청사항을 모았다가 batch로 한번에 보내고 받아야한다.