Учитывая полезную информацию @wOxxOm и @ err1100, я решил самостоятельно ответить на этот вопрос.Мне нравится использовать комментарии в вопросе для пояснения, однако я часто вижу, что пользователи SO отвечают на вопрос в комментариях вместо того, чтобы публиковать ответ (возможно, потому что ответы в комментариях обычно более разговорчивы, чем формулировка ответа), но в любом случае я думаю, что вопросызаслуживают ответов.Если кто-то из них отправит ответ, я приму первое, которое отправит сообщение, или если кто-то, кроме них, отправит значительно лучший ответ (не воровайте их кредит).
Постоянные страницы:
Постоянные страницы, по-видимому, лучше поддерживаются в разных браузерах, поэтому в этом случае предпочтительнее (по крайней мере, по состоянию на 24.11.2008).В противном случае рассмотрите возможность использования страницы событий, если расширение предназначено только для Chrome, поскольку постоянство редко требуется.
onInstalled:
Контекстные меню и все, что имеет схему именования declarativeXXXX
, должно быть инициализировано один раз вonInstalled
событие, но не так много других вещей, требующих однократной инициализации.
onStartup:
С постоянными страницами скрипт загружается один раз и никогда не выгружается, если браузер не закрыт и т. Д. onStartup
не имеет особого смысла.
В скрипте:
Как сказано выше, поскольку скрипт загружается только один раз при перезапуске браузера (и также запускается один раз, если установлен набраузер уже запущен) все инициализации сеанса просмотра можно выполнить здесь.
Страницы событий:
У меня не было четкого представления о том, для чего конкретно использовались непостоянные страницы (я считаю,это то, что wOxxOm называет страницей событий, прибегая к поиску информации, которая требует от меня исчезновения документации и перенаправления на документацию без термина) до этого вопроса, поэтому я уточню это для тех, кто может быть в одной лодке.Запускается непостоянный скрипт (в какой-то момент, IDK и не будет его тестировать), и регистрирует свои слушатели событий.После этого сценарий умирает, но слушатели остаются, что означает, что инициализация может быть выполнена с onInstalled
и onStartup
(поскольку я точно знаю, когда они выполняются, а не когда запускается непостоянный сценарий страницы) и всеми зарегистрированными вами событиями.прослушивание приведет к повторной активации этой части вашего скрипта (на самом деле просто запускается обратный вызов, предоставленный, но неважно).
onInstalled:
Так же, как с постоянными страницами, используйте это для тех же вещей, которые требуют один разинициализация.
onStartup:
Я бы не оставил код в скрипте и все в слушателе, если создавал страницу событий, но я не очень разбираюсь в страницах событий, поэтому я буду обновлятьэто если кто-то комментирует, что это неправильно.Вещи, требующие инициализации при каждом перезапуске браузера, будут в этом слушателе.
В скрипте:
Как сказано выше, я не очень хорошо понимаю сценарии событий, но кажется, что это единственный кодв вашем сценарии должна быть настройка слушателей и любых переменных, которые нужны этим слушателям.Никаких существенных сценариев не должно происходить в сценарии, однако сделайте, как вы должны, конечно, сделать свое расширение (или просто использовать постоянную страницу).