네트워크를 통해 제공되는 Office.js(및 그 종속성)에 대한 의존성은 일부 시나리오에서 어려움을 야기합니다. 이상적으로는 플랫폼이 완전한 오프라인 사용을 지원해야겠지만, 단기적으로 당면한 일부 문제를 해결하기 위한 점진적인 개선이 있기를 바랍니다.
예를 들어, 저희 추가 기능은 Outlook의 OnMessageSend 이벤트에 연결되어 이메일 전송 시 사용자 경험의 핵심 경로에 놓이게 됩니다. 사용자의 네트워크가 느리거나 불안정하거나, Azure CDN 중단으로 인해 Office.js를 사용할 수 없거나 전송이 느려지는 시나리오에서는 메시지 전송 시 Office.js가 로드되는 동안 사용자가 긴 대기 시간을 경험하게 됩니다. Outlook이 이 지연을 "추가 기능 X가 예상보다 오래 걸립니다."와 같이 추가 기능 탓으로 돌린다는 점을 강조해야겠습니다. 저는 이러한 경우에 플랫폼이 추가 기능에 사용자 경험에 대한 더 많은 제어 권한을 부여할 것을 제안하고 싶습니다.
저희 OnMessageSend 추가 기능의 경우, 이는 다음과 같은 방식으로 작동할 것입니다. 추가 기능은 이벤트 핸들러 외부에서(Office.js 로드가 완료되기 전에) 코드를 실행하여 타이머를 시작하고, 만약 로드 단계가 추가 기능 코드에 정의된 시간 초과 값을 초과하면 추가 기능은 Outlook에게 이벤트 처리를 완료하도록 지시합니다(*event.completed()*가 이벤트 핸들러 내에서 호출되는 방식과 유사하게). 이 마지막 부분은 Office.js가 완전히 로드되지 않은 경우에도 사용할 수 있는 Outlook과의 인터페이스를 필요로 할 것입니다.