无数据库交互的动态状态更新

时间:2015-02-27 07:44:33

标签: php wordpress codeigniter

我正在研究一个显示系统创建的实时状态/阶段的系统。

示例 - :如果我填写托管表单,然后在我的表单上,它应显示系统的状态。像进度栏中创建的域,托管文件等。我想在不使用数据库的情况下实现这一目标。

注意:所有操作都将在不同的系统上执行,而我的托管表单位于不同的系统上。

障碍:可以同时填写多个表单。

我尝试了什么

  1. 将步骤写入数据库并从那里读取。
  2. 将帖子卷曲到特定功能。但在这种情况下,我必须使用DB。
  3. 我正在寻找一种不需要数据库交互的方法,我可以在填写表单后动态查看状态。

2 个答案:

答案 0 :(得分:1)

有一个解决方案:

  1. 使用AJAX从安装了API的软件发送和接收信息
  2. 我认为这就是你想要做的。

答案 1 :(得分:1)

请随意纠正我对此问题的理解,但现在我的看法是这样。

  1. 您有一个包含多阶段表单的网站。因此,用户填写第一个,然后发送,并获得下一个填充。
  2. 您还有一个可能运行PHP的Web服务器,用于处理用户交互。因此,每当用户填写表单时,您的服务器应用程序就会继续执行该操作,并为用户提供下一个表单。
  3. 此外,您的PHP应用程序根据用户提供的信息提供了多个外部服务器和服务。
  4. 无论何时继续,您都希望显示来自外部服务的流程信息。
  5. 最后,如果存在较轻的数据库解决方案,你不想使用这么重的数据库解决方案。
  6. 如果到目前为止我已经掌握了有关正确的事实,可能会有一个合适的解决方案来帮助你。

    首先,值得一提的是PHP has its own session mechanism。它的数据存储默认为平面文件,可能适合您使用,也可能不适合。然而,它几乎不需要任何配置或设置,并提供持久存储,因此在我看来,它是迄今为止最简单的选择。

    请注意,如果要存储的信息量非常小,您可以完全绕过应用程序数据存储并坚持cookies。读取表单提交,在PHP过程中更新并作为响应的一部分相应地发送更新cookie。您可以加密数据,以使用户更难以改变。

    最后,此选项名为缓存。在处理PHP时,有多种技术可供使用。例如:xcacheAPC。这些存储信息存储在RAM中,显然它有缩小尺寸,因为数据在任何给定时间基本上都可以消失 - 但是你可以控制它。

    无论选择数据存储,一般的想法如下:

    • 当用户首次与您的服务进行互动时,请创建一个会话标识符和一个approriate cookie,以便稍后识别该用户。
    • 当用户填写第一个表单并发送它时,请阅读该信息并将其存储在缓存或cookie中。在从缓存中存储和读取信息时,使用用户使用的会话标识符为其添加前缀或命名空间。这样,在任何给定时间都可以有多个用户使用该服务!完成后,发送第二个表格进行填写。
    • 当用户最终发送第二个表单时,从缓存或cookie中读取给第一个表单的信息。现在,如果信息丢失,填写过程中出现错误(或由于长时间或cookie过期时间而导致缓存失效 - 您也会考虑这些因素)。
    • 事情进展顺利,建立从表格中收集的信息。只要您有足够的信息,请向外部服务部门提出要求,以便真正实现目标。
    • 现在,最后。您可以从客户端执行定期的ajax请求。因此,您不仅可以获得已发送的表单,还可以偶尔获得"流程如何进行?"查询。现在,每当您从浏览器收到类似请求时,您都可以按会话标识符识别用户,并从您的PHP应用程序调用外部服务,询问任何类型的状态。然后,您只需将信息转发到一直等待答案的浏览器。

    请注意,您可能必须在缓存中存储服务特定信息才能执行此操作。

    然而,这种设置有效地使您能够在不泄露其背后的服务的情况下控制PHP应用程序中的数据流。它还具有足够的轻量级,因为它不需要额外的外部软件来进行短期数据存储。