[Firefox-AddOn] Welche Limitierungen hat ein Add-On in Firefox?

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Hallo,

zunächst wollte ich ein Programm mit Java entwickeln. Das Programm muss Daten visualisieren, Daten erfassen und Daten sichern. Dreh und Angelpunkt ist hier die ordentliche Sicherung der Daten (grob gesagt eine Tabelle mit 60-70 Eigenschaften/Spalten und bis 1.000 Zeilen).

Nun habe ich mir überlegt, das in einem Firefox-Addon zu realisieren. Grund? Das Programm hat viel mit dem Internet zu tun, daher wäre die Integration in einen Browser ideal; Firefox ist eine API mit allen nötigen eingebauten Funktionen rundherum (SLite-DB-Funktionalität) und die GUI geht über XUL; man programmiert in JavaScript, HTML und CSS (bin ich besser als Java). Daher wäre für mich so ein Add-On interessanter als das Java-Program. Doch möchte ich Euch vorher um Einschätzungen zu folgenden Punkten bitten:

* Ist das von der Performance her mit Firefox und SQLite (ca. eine Tabelle mit 60-70 Eigenschaften/Spalten und bis 1.000 Zeilen oder auch aufgesplittet in 5-6 Tabellen mit <20 Eigenschaften/Spalten -- dann natürlich das übliche Daten visualisieren und Daten durchsuchen) machbar bzw. realistisch?

* Für alle meine benötigten Funktionen (Datenbank & Co.) habe ich APIs im MDN gefunden. Gibt es auch eine API, mit der ich direkt aus Javascript bzw. dem Add-On Komandozeilenbefehle ausführen kann?

* Ich habe viel über XUL gelesen und kann (schon) Menüeinträge sowie Icons in der ToolBar und Navigationsleiste erzeugen. Wie kann ich aber so eine Seite wie about:config für mein Add-On gestalten (natürlich über XUL, aber wie mache ich es, dass es aufgerufen wird, wenn man einen bestimmten Text in die Adresszeile eingibt?)?

Beste Grüße und einen guten Rutsch,
CPU
 
Zuletzt bearbeitet:
Ich bin selbst absolut kein Datenbankexperte aber ich vermute mal, um deine Performance-Frage beantworten zu können ist es dringend nötig zu wissen, wie "echtzeitkritisch" die Anwendung ist und wie oft/wie viele Daten so abgefragt werden.
Wenns nur darum geht zB nen Graph zu zeichnen und 10 Werte auszulesen geht das sicher. Wären ja nur wenige Werte und außerdem kanns doch ruhig 200ms dauern bis die Grafik die Daten geladen hat.
Wenn du aber mehrmals pro Sekunde lesend/schreibend große Datenmengen änderst könnte ich mir vorstellen, dass es "kritischer" wird.

Edit: Hilft dir sowas? http://www.sqlite.org/speed.html
 
Zuletzt bearbeitet:
Danke für Deine Antwort, kuddlmuddl!
Mittlerweile habe ich mich selbst davon überzeugen können, dass SQLite in Firefox performant genug für meine Zwecke ist (ich will ja auch nicht die Welt speichern!).

Aber, alles hat einen Haken: ich möchte mein Add-On für MF 3.6 bis MF 4.0 entwickeln. Doch leider steht in der Beschreibung zu SQLite in MF (https://developer.mozilla.org/en/Storage), dass die Unterstützung in den versch. Versionen variiert. Wo anders stand, dass MF 4.0 nicht diese SQLite DBs unterstützt (bzw. die Art, wie man darauf zugreift). Dennoch funktioniert mein Testskript unter MF 3.6.13 und MF 4.0b8. Konfus! Aber was heißt das nun???

Code:
var file = Components.classes["@mozilla.org/file/directory_service;1"]
           .getService(Components.interfaces.nsIProperties)
           .get("ProfD", Components.interfaces.nsIFile);
file.append("my_db_file_name.sqlite");
var storageService = Components.classes["@mozilla.org/storage/service;1"]
           .getService(Components.interfaces.mozIStorageService);
var dbConn = storageService.openDatabase(file); // Will also create the file if it does not exist
var statement = dbConn.createStatement("SELECT bla-bla FROM bla-bla-table");
while(statement.step()) {
           // access a column
           statement.getString(0);
}

Gruß,
CPU
 
Zurück
Oben