Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器的快速IPC方法_Javascript_C++_Winapi_Ipc - Fatal编程技术网

Javascript 浏览器的快速IPC方法

Javascript 浏览器的快速IPC方法,javascript,c++,winapi,ipc,Javascript,C++,Winapi,Ipc,我编写了一个应用程序,它以每秒几MB的速度积累数据,但每秒更新10次,并通过javascript在浏览器中显示当前进程 问题是,目前我将数据写入文件并使用javascript加载,但这使得应用程序非常滞后,人们抱怨他们的hdd工作很多 我想使用一些标志,比如FILE_ATTRIBUTE_TEMPORARY来告诉我的操作系统不要将文件写入磁盘,但是javascript要求我先关闭文件句柄,否则firefox无法打开它。因此,它将在该点写入磁盘,在最初使用该标志时终止该点 我考虑过使用mysql数据

我编写了一个应用程序,它以每秒几MB的速度积累数据,但每秒更新10次,并通过javascript在浏览器中显示当前进程

问题是,目前我将数据写入文件并使用javascript加载,但这使得应用程序非常滞后,人们抱怨他们的hdd工作很多

我想使用一些标志,比如FILE_ATTRIBUTE_TEMPORARY来告诉我的操作系统不要将文件写入磁盘,但是javascript要求我先关闭文件句柄,否则firefox无法打开它。因此,它将在该点写入磁盘,在最初使用该标志时终止该点


我考虑过使用mysql数据库之类的东西,但我真的想让它尽可能简单,我更喜欢不强迫用户设置http或mysql服务器的解决方案。

我将研究如何为您选择的web服务器制作插件或CGI程序,以便您的Javascript可以访问服务器上的特定URL,返回的数据不是来自真实文件,而是由您处理web的程序提供要求在大多数web服务器上都可以这样做。它可以和C++程序编写的简单控制台一样简单。

< P>我会研究如何为您选择的Web服务器制作插件或CGI程序,以便您的JavaScript能够访问服务器上的某个URL,并且返回的数据不是来自真实文件,而是由您处理Web请求的程序提供服务。在大多数web服务器上都可以这样做。它可以和你的C++程序编写简单到标准控制台一样。

在你的独立C++应用程序中包括一个Web服务器,直接从内存中服务数据。 我认为这是避免您现在面临的I/O开销的唯一选择。JS中没有IPC、消息队列或类似的接口。TCP或UDP以及websockets似乎是避免磁盘I/O的唯一可能的方法。另一种选择是用浏览器插件替换JavaScript,该插件可以用本机代码访问操作系统的功能


注意:在UNIX环境中,您可以在文件系统中创建FIFO套接字,该套接字也可以用于您的目的,也可以不用于您的目的。我认为Windows支持这样的东西。

< P>在你的独立C++应用程序中包括一个Web服务器,直接从内存中服务数据。 我认为这是避免您现在面临的I/O开销的唯一选择。JS中没有IPC、消息队列或类似的接口。TCP或UDP以及websockets似乎是避免磁盘I/O的唯一可能的方法。另一种选择是用浏览器插件替换JavaScript,该插件可以用本机代码访问操作系统的功能


注意:在UNIX环境中,您可以在文件系统中创建FIFO套接字,该套接字也可以用于您的目的,也可以不用于您的目的。不过,我认为windows不支持这样的功能。

这听起来像是您的应用程序在用户机器上本地运行,加载到浏览器中的页面也是本地的。正如您所说,您不希望用户必须进行配置,或者我假设您运行HTTP服务器,您希望避免出于性能原因将数据写入磁盘,并且您的标题包括IPC,我相信您剩下的是创建浏览器插件或在页面中包含ActiveX控件

页面中的ActiveX控件可以利用平台上可用的任何IPC机制生成本机代码,例如共享内存


另一种选择是让您的应用程序成为HTTP服务器,这样就不需要单独的服务器,但是,这可能属于用户必须配置HTTP服务器的类别,例如,他们可能需要打开软件防火墙上的端口。

这听起来像是您的应用程序在用户机器上本地运行,加载到浏览器中的页面也是本地的。正如您所说,您不希望用户必须进行配置,或者我假设您运行HTTP服务器,您希望避免出于性能原因将数据写入磁盘,并且您的标题包括IPC,我相信您剩下的是创建浏览器插件或在页面中包含ActiveX控件

页面中的ActiveX控件可以利用平台上可用的任何IPC机制生成本机代码,例如共享内存


另一种选择是将应用程序设置为HTTP服务器,因此不需要单独的HTTP服务器,但这可能属于用户必须配置HTTP服务器的类别,例如,他们可能需要在软件防火墙上打开端口。

该应用程序旨在在计算机上独立工作,因此将不会有webserverWell应用程序打算在计算机上独立工作,因此将不会有WebServerOsteam::flush强制
数据到磁盘?@Barmar是的,但我想避免将数据放到磁盘。ostream::flush不是强制将数据放到磁盘吗?@Barmar是的,但我想避免将数据放到磁盘。