d3.csv在IE9中表现不佳

时间:2013-10-01 19:37:10

标签: internet-explorer csv d3.js cors xdomainrequest

我们正在使用d3.js开发一个网站,它使用Firefox或Chrome完美运行,遗憾的是它必须与最新版本的IE一起使用。

我们在IE9和IE10中遇到困难,其数据值由:

检索

d3.csv(文件名,功能(错误,数据){

传递给函数的数据不是预期的JavaScript数组,而是类型为XDomainRequest的对象。

代码似乎在加载页面后第一次正常工作,并在后续迭代中失败。

直到今天早上我们使用的是d3版本3.0.8,我们现在已经切换到版本3.3.6

较新版本的D3已经解决了IE10中的问题,但没有改善IE9中的情况。

有什么想法吗?

更多信息已添加2013-10-08。

我有一个测试页面有两个按钮,一个按钮调用d3.csv来从与测试页面相同的服务器请求文件,另一个按钮调用d3.csv来请求来自不同服务器的文件CORS启用。对不起我在互联网上没有这个测试页面。

使用Firefox或Chrome一切正常。

使用IE9可以通过更改“浏览历史记录”设置来使其工作。

在IE9中,单击右上角的齿轮:

互联网选项 - >一般 - >浏览历史记录“设置”

这会在标题下显示一组单选按钮: “检查存储页面的较新版本”

“每次访问网页时” - 这都可以正常工作。 “自动” - 这使它失败。

此设置可以在加载测试页后来回更改,无需重新加载页面,通过CORS使d3.csv工作或失败。

查看IE9的F12开发人员工具中的“网络”选项卡,可以认为无论上述Brower历史记录设置如何,都会有HTTP请求和304响应。

然而,将Wireshark置于案例中,这就说明了一个不同的故事。当浏览器历史记录设置为“每次访问网页时”,Wireshark显示HTTP请求和HTTP 304响应,d3.csv将数组传递给回调函数。

当浏览器历史记录设置为“自动”时,Wireshark既不捕获请求也不捕获响应,d3.csv传递类型为XDomainRequest的对象而不是数组,即失败。

0 个答案:

没有答案