그래서 d3.json을 사용하는 일부 소스 코드를 사용하여 HTTP 요청과 함께 json을 가져 와서 시각화합니다. Chrome과 Firefox에서 완벽하게 작동하지만 사파리 나 크롬의 모바일 버전에서 실행하려고하면 깨집니다. iOS의 사파리에서 실행하면 널 (null) "D"개체가 발생하면, JS는 ... d3 구현은 firefox/chrome에서는 작동하지만 iPad는 작동하지 않습니다.
<em><!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="d3.v2.js">
</script>
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="stylesheet" href="syntax.css" type="text/css">
<link rel="stylesheet" href="pack.css" type="text/css">
</head>
<body>
<div id="chart"></div>
<svg width="960" height="960" class="pack">
<script type="text/javascript">
setInterval(function(){
var width = 960,
height = 960,
format = d3.format(",d");
var pack = d3.layout.pack()
.size([width - 4, height -4])
.value(function(d) { return d.size; });
var vis = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height)
.attr("class", "pack")
.append("g")
.attr("transform", "translate(2, 2)");
d3.json("http://localhost:8080/cluster", function(json) {
//do visualization
var node = vis.data([json]).selectAll("g.node")
.data(pack.nodes)
.enter().append("g")
.attr("class", function(d) {return d.children ? "node" : "leaf node" ;})
.attr("transform", function(d) {return "translate(" + d.x + "," + d.y +")"; });
node.append("title")
.text(function(d) { return d.name + (d.children ? "" : ": " + format(d.size)); });
node.append("circle")
.attr("r", function(d) { return d.r; });
node.filter(function(d) { return !d.children; }).append("text")
.attr("text-anchor", "middle")
.attr("dy", ".3em")
.text(function(d) { return d.name.substring(0, d.r/3); });
}
);
//log
}, 1000);
</script>
</body>
</html>
</em>
이
내가 부두를 사용하여 내 서버를 설정하는 방법이다 널 유형의 오류를 발견public static void main(String[] args) {
configureLogger();
Server server = new Server(PORT);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "index.html" });
resource_handler.setResourceBase("src/resources");
ServletHandler handler = new ServletHandler();
handler.addServletWithMapping(VisServlet.class, "/cluster");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resource_handler, handler, new DefaultHandler() });
server.setHandler(handlers);
try {
server.start();
log.info("Starting server on port " + PORT + "...");
server.join();
} catch (Exception ex){
System.exit(-1);
}
}
localhost가 모바일 버전에서 다른 것을 의미하는지 궁금합니다. yr IP 주소를 사용하려고합니다. – Andrew
내 IP 주소를 사용하고 있는데 모바일 브라우저가 JSON을 수신하지만 svg 요소를 생성하려고 할 때 null SVG 속성이 발생합니다 ... – capkutay