我有一个正在构建的 PHP 网络服务。
我可以看到问题迫在眉睫,并希望在编写过多代码之前获得一些关于如何解决它的意见。
我有 14 个站点,每个站点都包含一个 mysql 数据库实例,该实例由另一个自定义 perl 脚本更新。
为了将这些数据整合到一个单一的网络前端,我正在尝试编写一个执行以下操作的 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 |
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
其他元素同理
关于php - 停止数据库读取阻止 web ui 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107950/