将数据
加载到iGoogle等不同模块的最佳方法是什么?我有三个想法,但哪一个更可取?
- 使用数据库中的最新数据动态生成 html 页面。
- 提供一个几乎静态的html页面,然后客户端使用JavaScript从api获取数据
- 提供一个几乎静态的 html 页面,然后客户端连接到一个 websocket,该 websocket 将在推送实时蒸汽之前为客户端提供来自数据库的历史数据。
在这三种情况之一之后,客户端(当然第三种选择永远不会断开连接)连接到推送实时数据的 websocket。
哪种选择是首选的(最快,最轻量级),并以它们的意思使用这些技术?我有一种感觉,第三种选择以错误的方式使用 websocket?
经过一些研究和思考,我的结论;
数字 1:
- 即使关闭 JavaScript 也可以使用
- 我们需要提供一个动态页面,磁盘io。
数字 2:
- 提供快速的 html 页面
- 最大连接数(html page、api、websocket)
数字 3:
- 提供快速的 html 页面
- 我们的连接数量最少,因为即使之前获取数据,我们也会连接到 websockets(html 页面、websocket)
如果性能(尤其是延迟)对您很重要,那么使用解决方案 3 似乎完全没问题。数字 1 非常适合优雅的退化(正如您已经注意到的那样),也许数字 2 在概念上最干净,但我认为所有解决方案都很好。