如何高效且周期性地刷新bootstrap 4 table中的内容API?
How to refresh efficiently and periodically the contents of a bootstrap 4 table from a rest API?
我想根据从服务器端获取的值刷新 Bootstrap v4 table (https://getbootstrap.com/docs/4.0/content/tables),例如 REST API 资源。
我目前正在努力尝试以下不同的方法:
- 网络套接字
- 网络工作者
- 递归 setTimeout + ajax 轮询
- 还有其他更好的解决方案吗?
我的主要要求是每 500 毫秒或更短时间刷新一次(例如股票价格)。
另外我想知道如何最有效地处理 table 的 DOM 渲染。
Web Worker 无法直接与 DOM 交互,您的任务并不那么密集。
我会说 WebSockets + DOM 通过(数据)属性和单独的节点插入进行操作,而不是一次插入大量节点。它可能会慢一点,但差别不大,您甚至可能不会注意到它。参见 Fastest DOM insertion
我会单独更新内容,因为:
1)它更整洁,更易于维护,
2)您无需担心事件委托或特定内容的重新初始化
3) 流程感觉更自然,而不是仅仅在 DOM.
中获得大量标记和 "pasting"
如果您不添加新节点而只是监听现有节点上的数据更改,那么我明确建议进行基于属性的更改。
我想根据从服务器端获取的值刷新 Bootstrap v4 table (https://getbootstrap.com/docs/4.0/content/tables),例如 REST API 资源。
我目前正在努力尝试以下不同的方法:
- 网络套接字
- 网络工作者
- 递归 setTimeout + ajax 轮询
- 还有其他更好的解决方案吗?
我的主要要求是每 500 毫秒或更短时间刷新一次(例如股票价格)。
另外我想知道如何最有效地处理 table 的 DOM 渲染。
Web Worker 无法直接与 DOM 交互,您的任务并不那么密集。
我会说 WebSockets + DOM 通过(数据)属性和单独的节点插入进行操作,而不是一次插入大量节点。它可能会慢一点,但差别不大,您甚至可能不会注意到它。参见 Fastest DOM insertion
我会单独更新内容,因为: 1)它更整洁,更易于维护, 2)您无需担心事件委托或特定内容的重新初始化 3) 流程感觉更自然,而不是仅仅在 DOM.
中获得大量标记和 "pasting"如果您不添加新节点而只是监听现有节点上的数据更改,那么我明确建议进行基于属性的更改。