2013-11-21 7 views
3

Google 문서에서 선택한 텍스트를 대문자로 설정하는 스크립트 작업을하고 있습니다. 스크립트는 정상적으로 작동하지만 큰 문서에서는 매우 느립니다. 그래서 약간의 속도 테스트를 수행하는 거의 모든를 제거하고 그 간단한 라인을 실현 :Google Apps 스크립트 - getActiveDocument() 속도 향상?

 var document = DocumentApp.getActiveDocument(); 

이미 150 페이지 문서에 대해 수행 할 9-10초 걸립니다.

스크립트를 호출 할 때 합리적인 시간에 내 getCursor() 또는 getSelection()을 사용할 수 있도록 프로세스의 속도를 높일 수있는 방법, 즉 "문서"를 미리 캐시 할 수 있습니까?

+0

왜 글로벌 범위에 던지지 않습니까? 처음으로 문서를 열면 실행됩니다. –

+0

@BryanP 변수를 전역 변수로 선언하려했지만 아무런 차이가 없었습니다. 저는 스크립트를 실행할 때마다 새로 고쳐 졌다고 생각합니다. 편집하는대로 문서가 변경되기 때문에 의미가 있습니다. – marcomk

+0

전역'var 문서 '는 문서 편집시 변경되지 않습니다. 어떻게 스크립트를 호출하고 있습니까? 지연과 관련된 나머지 코드를 게시하십시오. –

답변

3

당신은 이것을 미리 할 수 ​​없습니다. 캐싱을 제공 서비스는 다음과 같습니다

  • CacheService : 만 저장 문자열
  • ScriptDb에 값이에 문서를 저장할 수 없습니다.

그래서 저는 여러분이 그것에 대처해야 할 것 같습니다.