我不得不同意 JavaScript 不适合科学处理的评论。但是,您最了解自己的要求;也许您已经找到了可以满足您需要的有用库。请注意,您必须自己实现所有逻辑。没有内置处理复数、矩阵或积分或......通常程序员时间比机器时间更有价值。就个人而言,我会研究编译语言;在我用我最喜欢的任何语言创建了一个速度不够快的第一个版本之后。
假设 JavaScript 是要走的路:
数据输入/输出
我可以想到三个选项:
使用 ajax 向服务器发送和接收数据
似乎是您使用 Server2go 找到的解决方案。它需要您编写一个服务器后端,但这可以保持非常简单。它真正需要做的就是能够读取和写入文件作为对客户端应用程序的响应。
使用包含文件 I/O 的 v8 的非浏览器实现
例如Node.js。然后,您可以避免对服务器的需求,而只需使用命令行界面,所有代码都将是 JavaScript。除此之外,它大致相当于第一个选项。
使用您要求用户保存或加载的文件 API创建文件对象
在我看来,这是最糟糕的选择,因为需要用户交互。它将避免对服务器的需要;您的应用程序可以是一个简单的 html 文件,它使用 ajax 请求加载所有数据文件。您必须使用特殊开关启动 Chrome 以允许使用file://
协议的 ajax 请求,如此处所述
这些选项只与文件 I/O 相关,您不能在 JavaScript 中进行文件 I/O。这是因为浏览器不能允许任意 Web 代码进行任意文件 I/O;安全影响将是可怕的。每个选项都描述了一种不进行文件 I/O 的方法。
第一个与为客户端执行文件 I/O 的服务器通信。
第二种使用“特殊”版本的 JavaScript,其条件与浏览器不同,因此安全隐患并不重要。但这意味着您必须在您使用的实际实现中查看文件 I/O 是如何完成的,这对 JavaScript 来说并不常见。
第三个要求用户控制文件I/O。
界面
即使您不使用 JavaScript 进行实际处理(到目前为止这是共识),也没有什么能阻止您使用浏览器作为界面或 JavaScript 库进行可视化。这是 JavaScript 擅长的。
如果您想交互式地控制您的数据挖掘工具,您将需要一个可以控制该工具的服务器。Server2go 应该可以工作,或者如果您使用 Node.js 中的内置服务器,或者...如果您不需要数据工具的交互式控制;file//:
也就是说,您首先生成处理后的数据,然后通过使用协议和JSONP查看服务器可以避免的数据。但真的;避免服务器不应该是一个目标。
我不会详细介绍接口问题,因为没有什么特别要说的,而且几乎所有关于 javascript 的文章都是关于接口的。
一件事,一定要使用像Angular.js或Knockout.js这样的声明性数据绑定库。