读取二进制文件从服务器和赞扬它在javascript

Read binary file from server and prase it in javascript

本文关键字:javascript 二进制文件 服务器 读取      更新时间:2023-09-26

这就是我的问题:

  • 服务器上有二进制文件(包含短int - 16位)
  • 我想加载它并为图形创建数据(我使用http://dygraphs.com/-它必须是本机格式数组[[0,1],[1,2]])

我试过这个代码:

window.addEvent(
        "domready",
        function()
        {
            var dataRequest = new Request(
            {
                url: "data.dat",
                onSuccess: function(response)
                {
                    var timestart = new Date();
                    var tempArray = response.match(/.{2}/g);
                    for(var i=0; i<tempArray.length; ++i) {
                        graphDataArray[i] = [i, (tempArray[i].charCodeAt(0)<<8) + tempArray[i].charCodeAt(1) ];                 
                    }
                    new Dygraph(
                        document.getElementById("graphdiv"),
                          graphDataArray,
                          {}
                    );
                    document.getElementById("timemsg").innerHTML = "Generated in " + (new Date() - timestart).toString() + " ms";                       
                }
            }
            ).send();
);

它不起作用,因为charCodeAt()与二进制数据无关,它解释ASCII。我该怎么办?

我找到解决办法了。下面是如何将二进制数据传输到浏览器:

然后,我简单地遍历数组并使用二进制移位运算符创建16位整型,并将其添加到符合图形库需求的数组中:

for (var i = 0; i < byteArray.byteLength; i+=2) {
  graphDataArray[counter] = [counter, (byteArray[i]<<8) + byteArray[i+1] ];
  counter++;    
}