Javascript 如何使用脱机Plotly和Pyramid在不重新加载网页的情况下更新绘图?

Javascript 如何使用脱机Plotly和Pyramid在不重新加载网页的情况下更新绘图?,javascript,jquery,python,pyramid,plotly,Javascript,Jquery,Python,Pyramid,Plotly,我正在尝试根据网页上的某些用户选择重新加载脱机Plotly图形。我正在使用金字塔生成网页。捕获用户输入后,我使用以下jQuery为div生成内容: $.getJSON("{{ request.route_url('park_list') }}" + "feature_plot/feature_ids=" + ids_string, function(data) { document.getElementById("plotly").innerHTML = data.result; });

我正在尝试根据网页上的某些用户选择重新加载脱机Plotly图形。我正在使用金字塔生成网页。捕获用户输入后,我使用以下jQuery为div生成内容:

$.getJSON("{{ request.route_url('park_list') }}" + "feature_plot/feature_ids=" + ids_string, function(data) {
    document.getElementById("plotly").innerHTML = data.result;
});
getJSON的第一个参数基于Jinja2模板,其中检索url。那里的输出是一个带有“result”键/值对的json字典。该值是div内容,即绘图。然后,我尝试将其插入名为“plotly”的div容器中

问题是没有插入任何内容。我看到一个宽度为0的空块,如果我尝试修复宽度,这是成功的,但仍然没有可见的内容


我的问题是:在不重新加载页面的情况下,动态更新脱机绘图的正确方法是什么?

使用Firefox Web developer console>网络选项卡检查生成的HTTP响应负载。很可能它不是JSON,或者它不包含
result
属性,导致
getJSON
失败

对于隔离区调试,您还可以执行以下操作:

console.log(data);
。。。在尝试插入HTML之前

另外,如果您的目标只是通过AJAX调用替换页面上的HTML元素,在服务器端呈现生成的HTML,那么您只需执行以下操作:

$.get(url, function(html) {
    $("#myelem").replace(html);
});

请显示接收json调用的金字塔视图代码。显示json调用生成的html URL也可能有帮助。只需在python中构建数据/fig json,然后通过ajax发送数据,然后使用
plotly.react()
更新图形,如[plotlyjs api]中所述。这不是更难而是更有效。谢谢!这帮助我找到了一个更好的解决方案,我只通过Pyramid发送了几个变量,但使用JS Plotly代码而不是Python代码来生成图形。