Verwenden Sie Delphi + Intraweb, um eine HTML5-Offline-Anwendung (Cache-Manifest) mit möglichem Browserspeicher (webSQL / IndexedDB) zu erstellen?

StackOverflow https://stackoverflow.com/questions/8830097

Frage

Meine aktuelle Intraweb-Anwendung ist tatsächlich ein DataSnap-Client, der eine Verbindung zu meinem DataSnap-Server herstellt, der eine Verbindung zu einem Interbase-Server auf demselben Computer herstellt und zusammen mit diesem sitzt. Es funktioniert korrekt, aber ziemlich langsam und erfordert eine ständige Internetverbindung, um zu funktionieren. Für jede angeklickte Schaltfläche oder jedes ausgelöste Ereignis muss der Browser eine Verbindung zum Webserver (Intraweb) herstellen.

Ich denke darüber nach, eine Offline-Webanwendung mit Intraweb in Delphi XE2, HTML5-Cache-Manifest-Funktion, zu erstellen und den browserbasierten SQL-Speicher (wie webSQL oder IndexedDB) als lokalen Browserspeicher zu verwenden, wenn das mobile Gerät offline geschaltet wird. Es wird nur dann eine Verbindung zu einem echten DataSnap-Server hergestellt, wenn eine Internetverbindung für die Initialisierung oder Synchronisierung zurück zum DataSnap-Server verfügbar ist.

Ist das möglich?

Mein Hauptproblem besteht darin, die URL der Webseiten aus der Intraweb-Webanwendung zu entfernen, und ich möchte nicht den gesamten Speichercode des Browsers in die Vorlagendateien einfügen.

Es ist auch ziemlich mühsam, den von Intraweb generierten JavaScript-Code in andere js-Dateien zu verschieben, und auf diese Weise kann ich die Intraweb-Anwendungscodes und -logik beschädigen. Gibt es eine Problemumgehung?

War es hilfreich?

Lösung

Wie Sie selbst angegeben haben: "Für jede angeklickte Schaltfläche oder jedes ausgelöste Ereignis muss der Browser eine Verbindung zum Webserver herstellen."

Dies ist das Design von IntraWeb: eine Client-Server-Anwendung, in der der größte Teil der Codelogik auf der Serverseite ausgeführt wird. Sie können Ihren Anwendungen einige AJAX-Widgets hinzufügen, IntraWeb selbst ist jedoch ein serverseitiges Framework.

Damit eine vollständige HTML5-AJAX-Client-Anwendung eigenständig ausgeführt werden kann, benötigen Sie eine reine JavaScript-Anwendung. Sogar Sacha / ExtJS-basierte AJAX-Frameworks (wie ExtPascal oder UniGUI ) oder Morfik erfordern einen Server zum Ausführen.

Das Erstellen einer reinen HTML5-JavaScript-Anwendung ist jedoch eine schwierige Aufgabe. Dies ist jedoch möglich, da Sie DataSnap-Inhalte aus JavaScript (mithilfe von XML oder JSON) verwenden können. Sie können http://www.appcelerator.com/ ausprobieren, eine großartige IDE und Plattform zum Erstellen von JavaScript-Anwendungen , die als native Apps ausgeführt werden.

Um eine nicht verbundene HTML5-Anwendung zu haben, müssen Sie möglicherweise warten, bis die folgenden Produkte veröffentlicht werden:

  • Smart aka OP4JS;
  • Web Builder erhöhen .

    Dank dieser beiden Projekte können Sie in Objekt-Pascal codieren. Anschließend wird das JavaScript aus der Pascal-Quelle kompiliert und anschließend der lokale HTML-Speicher verwendet. Lesen Sie beispielsweise diesen Artikel über die Verwendung von Speicher mit Smart / OP4JS - Ich habe es getestet (in Alpha) und es funktioniert sehr gut: Sie haben eine reine eigenständige HTML-Datei, die ohne Server ausgeführt werden kann und über lokalen Speicher verfügt. SQLite3-Speicher ist geplant (noch nicht fertig).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top