停止数据库读取会阻碍web ui呈现


Stopping database reads holding up web ui rendering

我正在构建一个PHP web服务。

我看到了一个迫在眉睫的问题,在我写太多代码之前,我希望能就如何应对它提供一些意见。

我有14个站点,每个站点都包含一个mysql数据库实例,该数据库由另一个自定义perl脚本更新。

为了将这些数据整合到一个单一的web前端,我正试图编写一个php网页,该网页可以执行以下操作。

在首页上,web服务器连接到所有14个数据库服务器,提取所需的信息,然后在页面上呈现。目前,由于所有数据都保存在我的本地机器上,所以这项工作可以完美地进行,但在生产中,这些数据将分布在14个独立的数据库中。

所以我的问题是,从UI绘画中提取数据库读数的最佳方法是什么。理想情况下,我希望有完整的网页渲染,加载栏指示用户何时可以显示数据。

这是通过AJAX可以实现的吗,还是我应该从另一个方向看。

提前谢谢。

我会这样做:

  • 创建一个可以从AJAX调用的小型php代理,因为您无法使用AJAX连接到其他网站
  • 显示元素为空的整页布局
  • DOM使用AJAX准备就绪后立即开始显示元素
  • 一旦开始从函数加载数据,每个元素都会有一个加载栏

例如:

 ___________________________________
| data_1 | data_2 | data_3 | data_4 |
 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

启动函数loadData1()将用加载条替换data1_id,并启动AJAX调用

 ___________________________________
| ...... | data_2 | data_3 | data_4 |
 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

其他元素相同

Ajax是您的最佳选择-加载基本页面,然后从该页面向服务器启动Ajax请求以收集数据。出于安全原因,我认为您无法创建对其他服务器的ajax请求

为什么不在本地缓存内容(这样用户就不必等待),然后通过ajax检索实时内容?