如何构建一个脱机工作的php mysql应用程序

时间:2012-09-04 22:37:10

标签: php mysql offline

我有一个Web应用程序,可以在线存储MySQL数据库中的数据。它还使用PHP代码检索数据,在服务器上执行计算并将结果发送回用户。

数据很简单:名称,描述,价格,增值税,从数据库读取并在服务器端操作的每小时费用。

客户通常在互联网连接不佳或不可用的环境中工作。在这种情况下,我希望客户能够脱机工作:输入新名称,描述,价格并使用上一个增值税来执行计算。然后在连接可用时立即同步所有数据。

现在的问题是我不知道实现这一目标的最佳方式或技术是什么。别担心,我不是要求为我编写代码。你能告诉我建立这样一个系统的正确方法吗?

有一种简单的方法可以在本地使用我的在线MySQL和PHP代码吗?

我是否应该在本地文件中保存我需要的数据,在JavaScript中重建计算,在本地执行它们,然后在数据库可用时同步数据。

我应该使用两个MySQL数据库,一个本地数据库和一个联机数据库,并在数据可用时在两者之间进行同步吗?如果是,我将使用哪种技术(语言)来执行此操作?

如果可能的话,我希望PHP编码员能够回答过去在类似项目上工作过的问题,并且可以提供有关框架结构和技术的详细信息。请记住,我是这种编写应用程序的新手,我很感激,如果你可以节省几分钟,并向我解释一切,如果我六岁或愚蠢(我是!)

我真的很感激任何帮助和建议。

侨,

Donato的

3 个答案:

答案 0 :(得分:13)

基本上有3种方法可供选择:

版本1:“旧学校”:PHP-Gtk +和bcompiler

  • 首先,如果您还没有这样做,则需要将业务逻辑与表示层(HTML,模板引擎......)和数据库层分开
  • 然后调整您的数据库层,以便它可以与另一个数据库一起使用(想到本地SQlite)并在再次联机时执行同步
  • 最后使用PHP-Gtk +创建一个新UI并使用bcompiler
  • 打包所有这些

版本2:“标准”:随身携带您的服务器

  • 查看Server2Go,WampOnCD和朋友创建“双击网络服务器”(从Z-WAMP开始)
  • 您仍需要像在版本1中那样调整数据库层

版本3:“Web 2.x”:将应用程序从服务器移动到浏览器

  • 将您的应用程序逻辑从服务器端(PHP)移至客户端(JS)
  • 使您的服务器部分(PHP)只是数据访问或同步层
  • 如果您处于离线状态,请使用HTML5离线功能将数据访问替换为本地数据,并在线时重新同步

哪一个最好?

这取决于你拥有什么和你想要什么。如果您的大部分业务逻辑都是使用PHP,那么将其移入浏览器可能会非常昂贵 - 请注意,这也会产生一整套新的安全噩梦。我个人不建议以这种方式移植,但如果备份数据库不是太大,我建议将其用于新应用。

如果你选择保留你的PHP业务逻辑,那么1到2之间的干扰往往是你的应用程序有多少用户界面的静止 - 如果只有少数CRUD形式,1。可能是个好主意 - 它绝对是最便携的(从你的角度来看)。如果没有,请选择2。

答案 1 :(得分:2)

查看HTML5的application cache。这几乎就是它的用途。此处有plenty of tutorials,因此请浏览一下,看看它是否符合您的需求。

答案 2 :(得分:1)

我使用过类似的船舶系统。互联网在海洋中间是昂贵的,因此他们安装了本地网络服务器,通过电子邮件同步数据库。

我们还创建了简单的.exe软件包,因此没有经验的人可以安装系统或更新系统......