使用Delphi + Intraweb可以创建HTML5脱机应用程序(缓存清单)以及浏览器存储(webSQL / IndexedDB)吗?

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

我当前的Intraweb应用程序实际上是一个DataSnap Client,它连接到我的DataSnap Server,该DataSnap Server与Interbase Server连接在一起并位于同一台计算机上。它可以正常运行,但速度很慢,并且需要不断的Internet连接才能正常工作。单击每个按钮或触发任何事件都将要求浏览器连接到Web服务器(Intraweb)。

我正在考虑使用Delphi XE2中的Intraweb,HTML5缓存清单功能创建一个脱机Web应用程序,并在移动设备脱机时使用基于浏览器的SQL存储(例如webSQL或IndexedDB)作为本地浏览器存储。仅当可以通过Internet连接进行初始化或同步回DataSnap Server时,它才会连接到真正的DataSnap Server。

有可能吗?

我的主要问题是从intraweb网站应用程序中获取网页的url,我不想将所有浏览器的存储代码都放在模板文件中。

将Intraweb生成的JavaScript代码移动到其他js文件也很繁琐,这样做可能会破坏Intraweb应用程序的代码和逻辑。有什么解决方法吗?

有帮助吗?

解决方案

您自己说过:“单击每个按钮或触发任何事件都将要求浏览器连接到Web服务器”。

这是IntraWeb的设计:一个客户端-服务器应用程序,其中大多数代码逻辑在服务器端执行。您可以向应用程序中添加一些AJAX小部件,但是IntraWeb本身是服务器端框架。

要使完整的HTML5 AJAX客户端应用程序能够独立运行,您将需要一个纯JavaScript应用程序。甚至基于Sacha / ExtJS的AJAX框架(例如 ExtPascal UniGUI )或Morfik需要运行服务器。

但是创建纯HTML5 JavaScript应用程序是一项艰巨的任务-可以实现,因为您可以使用JavaScript(使用XML或JSON)使用DataSnap内容。您可以尝试 http://www.appcelerator.com/ ,它是用于创建JavaScript应用程序的出色IDE和平台,以本机应用程序运行。

要断开HTML5应用程序的连接,您可能必须等待以下产品发布:

  • 智能又名OP4JS;
  • Elevate Web Builder

    由于这两个项目,您将能够在对象pascal中进行编码,然后从pascal源中编译JavaScript,然后使用HTML本地存储。例如,请参见有关将存储与Smart / OP4JS一起使用的文章-我已经在Alpha中对其进行了测试,并且效果很好:您拥有一个纯净的独立HTML文件,该文件无需任何服务器即可运行,并且具有本地存储。 SQLite3存储已计划(尚未完成)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top