在 Plotly-Dash 中使用具有大数据的下拉组件时浏览器崩溃
Browser is crashing when using dropdown component with large data in Plotly-Dash
我正在使用 Plotly-Dash 从大数据 (1000000) 点可视化热图 Densitymapbox()
。大约 30 MB 的数据第一次从服务器加载到浏览器中很慢,平移和缩放也很慢,但浏览器不会崩溃。这 30MB 数据来自 dash-update-component
。
我正在使用一个下拉菜单来更改热图的比例。
但是,我观察到,当我从下拉菜单中更改比例时,会调用回调函数,并且来自服务器的数据会再次加载到浏览器中,并且浏览器会崩溃,因为现在 dash-update-component
正在再次加载 30 MB 的数据.
有没有什么方法可以在从下拉列表更改缩放比例时从服务器加载数据之前清除浏览器缓存,这样浏览器就不会崩溃。
浏览器崩溃(崩溃)是因为当我们加载 dash 应用程序时,它会从服务器获取所需的所有数据到客户端。在这种情况下,假设服务器正在向客户端发送 30 MB 数据,如果客户端(您的浏览器)无法处理此数据,那么它将崩溃。仅供参考,这 30 MB 可能看起来很少,但它会消耗 4 GB 的客户端 RAM。
那么这里有哪些选项呢?
- 尝试向客户端发送有限数量的随机数据。
- 使用 Dash 的 relayOut 回调。此回调将在客户端发送当前视图的角坐标,并调用回调函数。在你的回调函数中使用这个角坐标并将有限的数据发送回客户端。
此 guy 同时使用了重采样和 relayOut 回调。它会解决问题。您不需要使用该包,因为这会使您的代码复杂化,您可以获取相关代码并使用它。
我正在使用 Plotly-Dash 从大数据 (1000000) 点可视化热图 Densitymapbox()
。大约 30 MB 的数据第一次从服务器加载到浏览器中很慢,平移和缩放也很慢,但浏览器不会崩溃。这 30MB 数据来自 dash-update-component
。
我正在使用一个下拉菜单来更改热图的比例。
但是,我观察到,当我从下拉菜单中更改比例时,会调用回调函数,并且来自服务器的数据会再次加载到浏览器中,并且浏览器会崩溃,因为现在 dash-update-component
正在再次加载 30 MB 的数据.
有没有什么方法可以在从下拉列表更改缩放比例时从服务器加载数据之前清除浏览器缓存,这样浏览器就不会崩溃。
浏览器崩溃(崩溃)是因为当我们加载 dash 应用程序时,它会从服务器获取所需的所有数据到客户端。在这种情况下,假设服务器正在向客户端发送 30 MB 数据,如果客户端(您的浏览器)无法处理此数据,那么它将崩溃。仅供参考,这 30 MB 可能看起来很少,但它会消耗 4 GB 的客户端 RAM。 那么这里有哪些选项呢?
- 尝试向客户端发送有限数量的随机数据。
- 使用 Dash 的 relayOut 回调。此回调将在客户端发送当前视图的角坐标,并调用回调函数。在你的回调函数中使用这个角坐标并将有限的数据发送回客户端。
此 guy 同时使用了重采样和 relayOut 回调。它会解决问题。您不需要使用该包,因为这会使您的代码复杂化,您可以获取相关代码并使用它。