Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails中的D3图形:多个Js文件重叠_Javascript_Ruby On Rails_Ruby_D3.js_Svg - Fatal编程技术网

Javascript Rails中的D3图形:多个Js文件重叠

Javascript Rails中的D3图形:多个Js文件重叠,javascript,ruby-on-rails,ruby,d3.js,svg,Javascript,Ruby On Rails,Ruby,D3.js,Svg,我有三个.js文件,它们应该以一定的顺序在视图上呈现d3折线图 问题:当两个文件都需要在同一视图上显示图形时,如何使.js文件不覆盖另一个文件 它们是分开的,因为它们提取不同的数据 如果“a”通过ajax调用找到数据,则文件“a”和“b”应呈现图形。如果不是,则应呈现文件“c” 他们将独立工作!但当所有文件都存在时,它们要么不会加载,要么一个将加载三次:/ 主要观点: <% elsif !@a.empty? %> <%= render 'a/graphs' %>

我有三个.js文件,它们应该以一定的顺序在视图上呈现d3折线图

问题:当两个文件都需要在同一视图上显示图形时,如何使.js文件不覆盖另一个文件

它们是分开的,因为它们提取不同的数据

如果“a”通过ajax调用找到数据,则文件“a”和“b”应呈现图形。如果不是,则应呈现文件“c”

他们将独立工作!但当所有文件都存在时,它们要么不会加载,要么一个将加载三次:/

主要观点:

  <% elsif !@a.empty? %>
    <%= render 'a/graphs' %>
    <%= render 'b/graphs' unless b.empty? %>
  <% else %>
    <%= render 'c/graphs' %>
  <% end %>
}))

这不太管用。将要发生的是,文件“a”将正确显示其所有图表,但随后将再显示2次(每个附加js文件显示1次),但没有正确的时间格式和行

因此,在我的.js文件中,我想告诉它仅在需要时加载数据。改变上述条件是否是我的最佳选择?让我知道,如果我可以提供更多的信息,非常感谢

额外信息:

这是文件“a.js”

// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/a.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_flow(data);
  drawLinePlot_ph(data);
  drawLinePlot_turbidity(data);

  function drawLinePlot_flow(data) {
    var svg = d3.select("#flow_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_ph(data) {
    var svg = d3.select("#ph_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_turbidity(data) {
    var svg = d3.select("#turbidity_plot").append("svg")
    //d3 code
  }

}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "flow_plot").length == 1) {
    loadData();
  }
});
//获取json的ajax调用
var loadData=function(){
var path=window.location.pathname.split('/');
var site_id=path[path.length-1];
$.ajax({
键入:“GET”,
contentType:'application/json;charset=utf-8',
url:'/a.json?site_id='+site_id+'&grapable=true',
数据类型:“json”,
成功:功能(数据){
console.log(数据)
var-alldata=[];
var parseTime=d3.timeParse(“%Y-%m-%dT%H:%m:%S.%LZ”);
data.forEach(函数(数据){
//该算法只是将其排序到一个嵌套数组中,以便于绘制图形
var eachmp=[]
对于(var idx=0;idx
这是文件“b”

// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/lab_forms.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_zinc(data);
  drawLinePlot_copper(data);

  function drawLinePlot_Zinc(data) {
    var svg = d3.select("#zinc_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_Copper(data) {
    var svg = d3.select("#copper_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }
}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "zinc_plot").length == 1) {
    loadData();
  }
});
//获取json的ajax调用
var loadData=function(){
var path=window.location.pathname.split('/');
var site_id=path[path.length-1];
$.ajax({
键入:“GET”,
contentType:'application/json;charset=utf-8',
url:'/lab_forms.json?site_id='+site_id+'&grapable=true',
数据类型:“json”,
成功:功能(数据){
console.log(数据)
var-alldata=[];
var parseTime=d3.timeParse(“%Y-%m-%dT%H:%m:%S.%LZ”);
data.forEach(函数(数据){
//该算法只是将其排序到一个嵌套数组中,以便于绘制图形
var eachmp=[]
对于(var idx=0;idx
这是文件“c”

// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/lab_forms.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_temp(data);
  drawLinePlot_velocity(data);
  drawLinePlot_depth(data);

  function drawLinePlot_temp(data) {
    var svg = d3.select("#temperature_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_velocity(data) {
    var svg = d3.select("#velocity_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }

  function drawLinePlot_depth(data) {
    var svg = d3.select("#depth_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }
}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "temperature_plot").length == 1) {
    loadData();
  }
});
//获取json的ajax调用
var loadData=function(){
var path=window.location.pathname.split('/');
var site_id=path[path.length-1];
$.ajax({
键入:“GET”,
contentType:'application/json;charset=utf-8',
url:'/lab_forms.json?site_id='+site_id+'&grapable=true',
数据类型:“json”,
成功:功能(数据){
console.log(数据)
var-alldata=[];
var parseTime=d3.timeParse(“%Y-%m-%dT%H:%m:%S.%LZ”);
data.forEach(函数(数据){
//该算法只是将其排序到一个嵌套数组中,以便于绘制图形
var eachmp=[]
对于(var idx=0;idx$(document).ready(function(){ 
    if($("#" + "zinc_plot").length == 1) {
        loadData();
    }
// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/a.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_flow(data);
  drawLinePlot_ph(data);
  drawLinePlot_turbidity(data);

  function drawLinePlot_flow(data) {
    var svg = d3.select("#flow_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_ph(data) {
    var svg = d3.select("#ph_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_turbidity(data) {
    var svg = d3.select("#turbidity_plot").append("svg")
    //d3 code
  }

}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "flow_plot").length == 1) {
    loadData();
  }
});
// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/lab_forms.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_zinc(data);
  drawLinePlot_copper(data);

  function drawLinePlot_Zinc(data) {
    var svg = d3.select("#zinc_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_Copper(data) {
    var svg = d3.select("#copper_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }
}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "zinc_plot").length == 1) {
    loadData();
  }
});
// ajax call to fetch json
var loadData = function() {
  var path = window.location.pathname.split('/');
  var site_id = path[path.length - 1];
  $.ajax({
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    url: '/lab_forms.json?site_id=' + site_id + '&graphable=true',
    dataType: 'json',
    success: function(data) {
      console.log(data)
      var alldata = [];
      var parseTime = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");
      data.forEach(function(data) {
        //this algorithm just sorts it into a nested array for graphing purposes
        var eachmp = []
        for (var idx = 0; idx < data.scute_reports.length; idx++) {
          var thisobject = {}
          thisobject.name = data.name
          thisobject.inspected_at = parseTime(data.scute_reports[idx].inspected_at)
          thisobject.zinc_data = data.scute_reports[idx].zinc
          thisobject.copper_data = data.scute_reports[idx].copper
          eachmp.push(thisobject)
        }
        alldata.push(eachmp)
      });

      console.log(alldata)
      formatAllThree(alldata)
    },

    failure: function(result) {
      error();
      console.log("fail")
    }
  });
};

function error() {
  console.log("Something went wrong!");
}

function formatAllThree(data) {
  drawLinePlot_temp(data);
  drawLinePlot_velocity(data);
  drawLinePlot_depth(data);

  function drawLinePlot_temp(data) {
    var svg = d3.select("#temperature_plot").append("svg")
    //d3 code
  }

  function drawLinePlot_velocity(data) {
    var svg = d3.select("#velocity_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }

  function drawLinePlot_depth(data) {
    var svg = d3.select("#depth_plot").append("svg")
    //each js file calls different id's
    //d3 code
  }
}

// fetch data on page load
$(document).ready(function() {
  if ($("#" + "temperature_plot").length == 1) {
    loadData();
  }
});
formatAllThree(alldata)
function formatAllThree(data) {
 //all of my d3 code
}
formatAllThree_A(alldata)
$(document).ready(function() {
    if ($("#" + "zinc_plot").length == 1) {
    loadData();
  }
});