我正在功能齐全的LAMP服务器上创建一个数据记录器(实际上,它是Debian的骨干)。我想将此数据导入到客户端javascript中以绘制一些漂亮的图等。

为了创建日志文件,我每秒在cronjob中运行以下ANSI C程序:

struct md
{
    unsigned long int time;
    int ch0;
    int ch1;
    int ch2;
};

int main ()
{
  struct md mydata;
  /* assign values to mydata */
  FILE *fp0=fopen("out.bin","ab");
  fwrite(&mydata, sizeof(struct md), 1, fp0);
  fclose(fp0);
  exit (0);
}


您可能会猜到,文件out.bin很快就会很大。这就是为什么我不想将其存储为ASCII的原因。

我敢肯定,有一个简单的方法可以做到这一点,但是我没有找到解决方法……。

顺便说一句,我知道耐力问题。

最佳答案

您仍然需要向服务器上的文件发出ajax请求。

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";

oReq.onload = function (oEvent) {
  var arrayBuffer = oReq.response; // Note: not oReq.responseText
  if (arrayBuffer) {
    var byteArray = new Uint8Array(arrayBuffer);
    for (var i = 0; i < byteArray.byteLength; i++) {
      // do something with each byte in the array
    }
  }
};

oReq.send(null);


This document on mdn将对您有所帮助。

10-06 08:29