【问题标题】:Sending JSON data to a client? D3.js rendering JSON data向客户端发送 JSON 数据? D3.js 渲染 JSON 数据
【发布时间】:2014-02-12 22:48:24
【问题描述】:

我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的:

  • 接受用户的输入 --- 5 个整数
  • 通过 REST 调用 Web 服务
  • 在服务器端运行一些计算...并生成一个 JSON 对象

    ???现在我有了结果 JSON 对象,但是如何将它发送给客户端呢?坚持吗? ??? URL 是否需要是 JSON 文件的确切位置?这将意味着 100 的 ???我的 Web 服务器的 DIR 中的 JSON 文件。

  • 客户端的 D3.js 等待数据出现(通过 AJAX?)。

    var data; // a global
    
    d3.json("path/to/file.json", function(error, json) {
    if (error) return console.warn(error);
         data = json;
         visualizeit();
    });
    
  • 一旦数据出现,为客户端渲染,然后从屏幕上移除计算器。

我在这里遇到了困难,因为我注意到所有 AJAX 请求都需要一个 URL。但这是否意味着我需要为每个生成的 JSON 对象提供一个唯一的 URL?这是否意味着我需要持久化该对象?

我只想让 d3.js 呈现我的 JSON 对象,但不清楚我可以选择将它放在哪里。

【问题讨论】:

    标签: javascript ajax json d3.js


    【解决方案1】:

    How do I post parameter on d3.json?

    通常,您将通过 javascript 对象或 一个查询参数。 基本上,类似...

    数据 = {}

    data.var1 =5;

    data.var2 =10;

    var my_request = d3.xhr(url)

    my_request.post(JSON.stringify(data), function(error,received)){

    };

    或者

    d3.json(url+"?"+"var1=5&var2=10",function(error,received)){

    }

    显然,这些表单参数可以在服务器上轻松解析。服务端解析完值后,服务端可以使用解析后的表单参数生成新的JSON。

    如果您从本地页面(或不在网站上的页面)运行脚本,请确保服务器能够允许跨源(或域)请求。

    如果你想在多个调用中持久化数据,你可能必须嵌入回调,或者使用全局变量。

    【讨论】:

    • 所以这就像我在执行 POST ... 到将返回 JSON 对象的页面?
    • 是的,或者你可以做一个 GET。不过,计算不应该太昂贵。
    • 我看到你把我的输入数据作为 JSON 对象...我的困惑是围绕如何捕获 Web 服务响应 JSON.. 似乎我只需要编写一个输出 JSON 和 d3 的 Web 服务会很开心
    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2013-02-01
    • 2017-05-07
    • 1970-01-01
    • 2019-01-01
    • 2015-01-08
    相关资源
    最近更新 更多