-1

私は、MS SQL サーバー データベースからプルしているいくつかのデータに対して、 (d3.js http://bl.ocks.org/mbostock/raw/4062045/を使用して) 強制的にレイアウトを作成する作業を行っています。現在、pythonスクリプトを使用してjsonファイルを生成し、python -m SimpleHTTPServerを使用してローカルサーバーで実行しています。

私がやりたいことは、Web アドレスを入力すると、Python スクリプトがサーバー側で実行され、json ファイルが生成されるように、Python スクリプトと HTML の間にリンクを作成することです。この間、UI をブロックする必要があります。ファイルが生成されると、グラフ自体が画面に表示されます。グラフと json ファイルを別々に生成できます。それらをblockuiまたはプログレスバーと一緒に配置する必要があります(プログレスバーは多すぎると思います)。

私は JavaScript と Web 開発の初心者で、グラフを作成しながらその場で学習しています。この方向のガイダンスは大歓迎です。

ありがとう、

プラテック

編集:

現時点でのコードのスニペットは次のとおりです。

d3.json("json_data.json", function(error, graph) 
{

  var nodeMap = {};
  graph.nodes.forEach(function(x) { nodeMap[x.name] = x; });
  graph.links = graph.links.map(
  function(x) 
  {
    return {
        source: nodeMap[x.source],
        target: nodeMap[x.target],
        value: x.value
        };
  });

  force
       .nodes(graph.nodes)
      .links(graph.links)
      .start();

このコードは、ajax リクエストの成功セクションの下に挿入します。サーバー上に json_data.json ファイルが存在するかどうかを確認し、ファイルの作成中に糸車を表示するために、スクリプトに ajax リクエストを送信して、時間がなくなった場合にエラーへの制御転送が必要です。リクエストのセクション。

json ファイルは単純に次のとおりです。

nodes: {}
links: {} //without any children level of depth.
4

1 に答える 1

1

jQuery を使用している場合は、http://api.jquery.com/jQuery.ajax/を見て、ajax リクエストの作成方法を確認してください。ページの $(document).ready() 関数の先頭にリクエストを配置することをお勧めします。次に、前述のようにblockUIを使用して、ajax 呼び出しを開始する前にページをブロックし、ajax 呼び出しで定義した成功およびエラー (または完了) コールバックでブロックを解除できます。次のようなもの:

$(document).ready(function() {
    $('body').blockUI();
    $.ajax({
        url: http://www.example.com/pathYouAreListeningOn,
        data: {
            "dataYouNeedToSend" : "Here"
        },
        success: function(result, status, xhr) {
            $('body').unblockUI();
            // Whatever you need to do to display your graph
        },
        error: function(xhr,status,error) {
            $('body').unblockUI();
        }
     });
});

注意すべきことは、リクエストの送信先の URL が現在のページの URL である場合、それを含める必要はなく、ajax リクエストで送信する必要があるデータがない場合は、それもやめて。

于 2013-07-09T22:14:35.450 に答える