0

Ich habe eine neustartlose Firefox-Erweiterung, in der ich ein Array habe, das für einige Entscheidungen verwendet wird. Die Elemente dieses Arrays können sich über die Zeit ändern.Wie tausche ich meine Array-Datei in meiner Neustart-freien Firefox-Erweiterung? Art der Aktualisierung der Array-Elemente nicht die gesamte Erweiterung?

Momentan habe ich meine bootstrap.js Datei, die verschiedene Funktionen in einem anderen .js Dateien anruft. Und innerhalb einer dieser Funktionen befindet sich dieses Array.

Ich versuche herauszufinden, wie kann ich meinen Code so restrukturieren, dass ich dieses Array (nicht die gesamte Erweiterung) nach der Installation aktualisieren kann.

Woran ich gedacht habe ist; um dieses Array in eine separate .js Datei zu ziehen und zu planen, diese zu tauschen, wenn ich das Array nach der Installation 'update'.

Allerdings verstehe ich immer noch nicht, wie es geht. Die Art, wie ich verstehe, ist, bündle ich mein Add-on als .xpi es wird installiert und ist es dann möglich, ein teilweises Upgrade zu tun?

Ich möchte nicht eine andere .xpi dafür drücken. Und ich nehme an, dass dadurch auch der Benutzer erkennen wird, dass die Erweiterung aktualisiert wurde. Da die Array-Updates häufig sein können, kann dies wirklich seltsam für die Benutzeraktualisierungen aussehen, die jede Woche oder so stattfinden.

Kann ich dies über eine API tun, die das aktualisierte Array abruft und es in den Code (Do .push in bestehendes Array) umwandelt? Grundsätzlich möchte ich, dass dies für den Benutzer unsichtbar und leicht ist.

Wie kann ich es besser/richtig machen? Wenn ich um etwas bitten möchte, das momentan nicht möglich ist, lassen Sie es mich wissen.

+0

Sobald die Erweiterung installiert ist, wie könnte dieses Array aktualisiert werden? Wird das Aktualisierungsergebnis der Benutzeraktion in der Benutzeroberfläche der Erweiterung angezeigt oder wird es von einer Remote-URL abgerufen? – Kashif

+0

@Kashif Nein, es ist nicht das Ergebnis einer direkten Benutzeraktion. Meine Erweiterung sitzt nur im Browser und basierend auf dem, was der Benutzer Typen verweist das Array für bestimmte Entscheidungen. Dieses Array kann unabhängig von Benutzeraktionen aktualisiert werden. Auch wenn ich von Remote-URL abrufen muss (ich nehme an, dass ich dafür regelmäßig nachsehen muss?) Ist es möglich, das Array nach der Installation zu aktualisieren? Ich kann die URL aufrufen, die die neuen Array-Elemente oder die zu entfernenden Array-Elemente bereitstellt. Kann ich das nach einer Installation tun und wie ich es tun soll, ist etwas, was ich wissen wollte. –

+0

Können Sie eine REST-API-Anfrage an einen Server senden, der den JSON zurückgibt? Und es speichert dann diese JSON auf der Festplatte, im Falle eines fehlenden Internetzugangs bei zukünftigen Überprüfungen und für den Offline-Gebrauch. – Noitidart

Antwort

1

Alles, was Sie in xpi einschließen, wird aktualisiert, wenn es eine neue Installation dieses xpi gibt.

Da Sie erwähnt haben, dass die Updates häufig sind, könnten Sie das Array möglicherweise von einem Remote-Endpunkt abrufen. Dies könnte eine JSON-Datei oder ein Rest Anruf sein, was immer Sie für besser geeignet halten. Um die Leistung zu verbessern, können Sie das Array vom Remote-Endpunkt abrufen, es im Benutzerprofilverzeichnis speichern und es nur aufgrund einer gewissen Ablaufzeit (z. B. jede Woche oder zwei Wochen) erneut abrufen.

Beachten Sie in diesem Fall, dass, wenn Ihre Erweiterung über AMO verteilt werden muss, der Überprüfungsprozess einige zusätzliche Schritte erfordern kann, z. einschließlich einer Datenschutzrichtlinie, die die Verwendung von eval für Array-Inhalte verhindert.

+0

Also meine einzige Option ist es, eine neue '.xpi 'zu erstellen und das als Update richtig zu schieben? –

+0

Sie könnten Array auch vom Remote-Endpunkt laden. – Kashif