Как мне поменять файл массива в моем безудержном расширении firefox? Вид обновления элементов массива не всего расширения?
У меня есть перезапускаемое расширение Firefox, в котором у меня есть массив, который используется для принятия некоторых решений. Элементы этого массива могут меняться со временем.
В настоящее время у меня есть мой bootstrap.js
файл, который вызывает различные функции, присутствующие в другом .js
файлы. И внутри одной из этих функций находится этот массив.
Я пытаюсь выяснить, как я могу реструктурировать свой код таким образом, чтобы я мог обновить этот массив (не все расширение) после установки.
То, о чем я думал, это; вытащить этот массив в отдельный .js
файл и планирую поменять это, когда я сделаю массив "обновление" после установки.
Тем не менее, я до сих пор не понимаю, как это сделать. Насколько я понимаю, я связываю свое дополнение как .xpi
он устанавливается, а затем можно сделать частичное обновление?
Я не хочу толкать другого .xpi
за это. И я предполагаю, что это также заставит пользователя знать, что расширение обновлено. Так как обновления массивов могут быть частыми, это может выглядеть очень странно для пользовательских обновлений, происходящих каждую неделю или около того.
Могу ли я сделать это через API, который будет извлекать обновленный массив и поменять его местами в коде? .push
к существующему массиву)? По сути, я хочу, чтобы это было невидимым для пользователя и легким.
Как я могу сделать это лучше / правильно? Если я прошу что-то, что в настоящее время невозможно, дайте мне знать.
1 ответ
Все, что вы включаете в xpi, будет обновляться при новой установке этого xpi.
Поскольку вы упомянули, что обновления будут частыми, вы можете получить массив из удаленной конечной точки. Это может быть файл json или вызов rest, как вы считаете, более подходящим. Чтобы улучшить производительность, вы можете извлечь массив из удаленной конечной точки, сохранить его в каталоге профиля пользователя и только извлекать его снова, основываясь на некотором периоде истечения (например, каждую неделю или две недели).
Помните, что в случае, если ваше расширение должно распространяться через AMO, процесс проверки может потребовать некоторых дополнительных шагов, например, политики конфиденциальности, запрета использования eval для содержимого массива.