2013년 7월 18일 목요일

동적뷰 렌더링 타임아웃 설정

동적뷰에서 커스텀 CSS 코드를 추가하였을 경우, 또는 심지어 기본 설정일 때에도 동적뷰가 제대로 로딩되지 않는 문제가 있습니다. 예컨데,

  • 맞춤설정대로 표시되지 않거나,
  • 오른쪽에 가젯이 하나만 표시되는 경우
  • 탭 페이지가 표시되지 않는 경우 등


이런 현상이 발생하는 이유는, 일반 템플릿에서는 블로그가 하나의 페키지처럼 로딩되는데 반해 동적뷰에서는 각각의 요소가 서버로 부터 독립적을 로딩하기 때문이라고 합니다. 즉, 동적뷰에는 자체 타임아웃 메커니즘을 갖고 있는데, 로딩 시간이 길어지면 그냥 무시하고 렌더링(render)을 해버리는 것입니다.

저도 프로그래머가 아니기 때문에, 자세히는 모르고 대략적으로만 이해하고 있는 내용입니다.

어쨌든, 이 문제 때문에 많은 블로거 유저들이 동적뷰를 포기하고 일반 템플릿으로 복귀하거나, 아니면 아예 다른 블로그로 이전을 하는데요. 블로거에 따르면, 2백만명이 넘는 유저들이 이 문제로 고생을 하고 있다고 합니다.

최근에, 이 문제에 대한 해결 방법이 소개되었으니, 동적뷰 유저는 꼭 해당 코드를 수정하여 추후 고생하는 일이 없기를 바랍니다.

Fixed: Blogger Dynamic Views Fails to Load Properly   ← 동적뷰 사용자들의 영웅

먼저, [대시보드 → 템플릿 → HTML 편집]에서 Ctrl+F를 이용하여 'setTimeout(function()'  을 찾습니다.

 <script language="javascript" type="text/javascript">  
  setTimeout(function() {  
   blogger.ui().configure().view();  
  }, 0);  
 </script>  

그리고, 4번째 줄에 0이라고 표시된 부분을 500으로 고쳐줍니다. (0에서 500까지 입력 가능) 500은 500 milliseconds로 0.5초입니다. 다시 말하면, 렌더링하기까지의 로딩 시간 제한을 0.5초 더 주는 것입니다.

 <script language="javascript" type="text/javascript">  
  setTimeout(function() {  
   blogger.ui().configure().view();  
  }, 500);  
 </script>  

이렇게 수정을 해주면, 오른쪽에 가젯이 하나만 뜨거나, 동적뷰가 맞춤설정대로 표시되지 않는 현상이 확 줄어들 것입니다.



댓글 2개:

  1. 아 이 문제를 여기서 해결하게 될줄이야...
    고맙습니다. ^^

    답글삭제