В последнее время при поиске средств для повышения производительности моего дополнения Gmail я натолкнулся на определенный вопрос комментариев, в которых отмечалось, что:
Обратите внимание, что библиотеки иглобальные значения оцениваются каждый раз, когда ваше дополнение запускает любую функцию
Я начал тестировать ее и заметил, что при отладке свойство this
функции, кроме глобальных и библиотечных объектов, содержало module
и exports
свойства, которые содержат все экспортируемые (и, возможно, даже все) функции.Я использую Typescript, поэтому экспорт - это способ достижения модульности для меня, но, насколько я знаю, clasp
на самом деле не компилирует мой Typescript.
То есть я хотел бы знать следующие темы:
1) Оцениваются ли действительно экспортированные функции?Что это означает, в частности?
2) Какие функции точно оцениваются?Все или только экспортированные?Какие функции следует экспортировать?
3) Применяются ли эти правила к вызовам вложенных функций?Скажем, я выполняю map
функцию над массивом.Оценивается ли контекст каждый раз, когда передается функция?
Кроме того, мне бы очень хотелось получить общие советы о том, как улучшить производительность моего дополнения.Есть ли какие-либо руководства помимо developers.google.com руководств?
Заранее спасибо.