2012-05-08 4 views
1

내 Google 사이트 도구에서 Google Apps Script 가젯의로드 시간이 일정하지 않습니다. 가젯로드 과정에는 가시적 인 두 단계가있는 것처럼 보입니다. "빈"기간과 "로드 중"애니메이션이있는 기간입니다. 누구나이 두 단계의 관계를 설명 할 수 있습니까? 로드 애니메이션이 완료 될 때까지 내 코드가 실행되기 시작하지 않는다는 것을 알 수는 없습니다. 사실입니까?Google Apps Script 가젯 - 언제로드됩니까?

내 스크립트는 로딩 애니메이션에 도달하면 상대적으로 일관되게 수행되는 것 같습니다. Google Apps Script의 성능을 최적화하는 데 사용할 수있는 문서를 검토 한 결과 요구 사항에 대해 적정한로드 시간을 얻을 수 있었지만 로딩 애니메이션이 표시되기 전에 콘텐츠가없는 경우 가젯이 60 초 이상 오래 걸리는 경우가 있습니다. .

3 개의 Google Apps Script 가젯이 포함 된 페이지가 한 페이지에 있으며 성능 프로필은 매우 다릅니다. 두 곳의 스프레드 시트에서 데이터를로드하고 있지만 다른 곳에서 Google Contacts를 통해 반복해야합니다. 이 스크립트 중 하나가 "로딩"애니메이션에 부딪치게되면 모두 빠르게 실행되기 시작합니다.하지만 개발자가 애니메이션 로딩 이전의 시간에 영향을 미치지는 않습니다.

답변

0

흥미로운 질문입니다. 하지만 우리가 할 수있는 일은 정말 두렵습니다. 글쎄, 구글과 불평 외에 :

나는 issue tracker에 "Enhancement request"를 열어야한다고 생각한다.

1

웹 브라우저는 Javascript (또는 GAS)에서 서버 호출을 할 때 단일 스레드이므로 서버에서 값을 반환하고 페이지를 렌더링하려면 먼저 서버에 대한 모든 함수 호출을 완료해야합니다. 문제를 해결하려면 페이지에 간단한 버튼을 만들어 GAS 프로세스를 시작한 다음 버튼을 눌렀을 때 클라이언트 처리기를 통해로드 화면이 나타나도록해야합니다. 프로세스가 백그라운드에서 진행되는 동안로드 화면이 표시되고 프로세스를 마칠 때로드 화면 (패널) 가시성을 false로 설정할 수 있습니다.

가장 세련된 해결책은 아니지만 초기 페이지가 빠르게 렌더링되고 원하는 경우 애니메이션 GIF 로딩 그래픽이있는 패널을 설정하여 사용자에게 페이지가로드되고 있음을 알립니다.

희망이 도움이됩니다.