【问题标题】:D3 samples in a Microsoft StackMicrosoft Stack 中的 D3 示例
【发布时间】:2013-06-13 01:31:25
【问题描述】:

我们正在尝试熟悉 D3 (http://d3js.org/),尤其是 http://bl.ocks.org/mbostock/3306362http://bl.ocks.org/mbostock/2206590 等示例。似乎所有这些示例都使用本地文件 IO 来加载地理位置信息。以下代码sn-ps常见:

queue()
.defer(d3.json, "/mbostock/raw/4090846/us.json")
.defer(d3.tsv, "unemployment.tsv")
.await(ready)

而其他样本经常使用此签名来加载数据:

d3.json("someJSONFile.json", function(error, uk) {
console.log(uk);
});

我们已经创建了几个本地 html 文件来测试示例,但我们遇到了安全问题。很明显,该脚本正在访问一个本地文件,这确实给我们带来了 Microsoft 堆栈中的问题(Apple 或 Linux 目前不是一个选项,尽管我们已经尝试过 Chrome,但没有成功)。我们如何启用 html 文件或重构脚本以访问本地文件?

【问题讨论】:

  • 您是否收到类似“XMLHttpRequest 无法加载 file:///C:/someJSONfile.json。跨源请求仅支持 HTTP。”之类的消息。 ?

标签: javascript asp.net file-io d3.js


【解决方案1】:

您需要通过网络服务器托管文件,因为网络浏览器限制了可以在本地访问的文件类型。在 Windows 机器上执行此操作的最简单方法:

  1. 安装python

  2. 使用cmd.exe 导航到包含您的示例的目录。按住 shift 键,右键单击包含示例的文件夹并选择 Open Command Window Here 是最简单的方法。

  3. 在命令提示符下,在较新版本上输入 python -m SimpleHTTPServer 8000python -m http.server 8000 以启动 Web 服务器。

  4. 打开网络浏览器(我真的建议使用 chrome,开发工具远远领先于 ff 和 ie),转到 127.0.0.1:8000。该示例应该显示出来。

【讨论】:

  • Python 似乎是 D3 示例的首选开发环境。我希望有另一种方法,但很明显 Python 路由可以轻松访问本地文件。出于学习目的,这可能是最简单的方法,直到我们在完整的 ASP.net 网站上启动并运行一些 Web 服务。
  • 如果您更熟悉 Windows 堆栈,使用 IIS 站点 (support.microsoft.com/kb/323972) 可能更容易。不过,python 路线非常简单,走起来应该不会超过 15 分钟。
猜你喜欢
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2018-01-17
  • 1970-01-01
相关资源
最近更新 更多