使用HTML5本地存储交换信息 我有一个用C++编写的程序,从中读取值。无论如何,那部分并不重要。我所拥有的是不断变化的数据,我想用图表表示这些数据。我希望使用web浏览器来显示数据,因为有太多的开源图形和图表是用JavaScript编写的 发送数据到浏览器。

使用HTML5本地存储交换信息 我有一个用C++编写的程序,从中读取值。无论如何,那部分并不重要。我所拥有的是不断变化的数据,我想用图表表示这些数据。我希望使用web浏览器来显示数据,因为有太多的开源图形和图表是用JavaScript编写的 发送数据到浏览器。,javascript,browser,websocket,local-storage,Javascript,Browser,Websocket,Local Storage,我已经调查过了,UDP在浏览器中还不可用,所以我将不得不使用TCP。TCP WebSocket没有那么快,我正在考虑改用html5本地存储。我的意思是让我的C++程序在LoalStalk上写入数据库,然后JavaScript将等待那个变量的值存在,并发明某种协议来实现这一工作。本地存储速度非常快,例如: <script type="text/javascript"> var counter = 0; window.onload = function () {

我已经调查过了,UDP在浏览器中还不可用,所以我将不得不使用TCP。TCP WebSocket没有那么快,我正在考虑改用html5本地存储。我的意思是让我的C++程序在LoalStalk上写入数据库,然后JavaScript将等待那个变量的值存在,并发明某种协议来实现这一工作。本地存储速度非常快,例如:

<script type="text/javascript">

    var counter = 0;

    window.onload = function () {

        function Test() {

            counter++;

            localStorage.p = counter + ""; // perform write 

            var read = localStorage.p; // perform read

            if (read == "5000")
                alert((new Date() - now)); // shows 45
            else
                Test(); // loop again
        }

        var now = new Date(); 
        Test();
    }

</script>

var计数器=0;
window.onload=函数(){
功能测试(){
计数器++;
localStorage.p=counter+“”;//执行写操作
var read=localStorage.p;//执行读取
如果(读数=“5000”)
警报((新日期()-现在));//显示45
其他的
Test();//再次循环
}
var now=新日期();
Test();
}
该脚本耗时54毫秒,读写次数为5000次这意味着下次我不再为浏览器创建插件,而是实现某种协议,使我能够使用localStorage交换信息。例如,我可以让浏览器等待变量x的存在。一旦它存在,我就通过浏览器创建一个变量Y,通知C++程序它准备好接收数据等等。strong>localStorage只是一个位于C:\Users[USER]\AppData\Local\Google\Chrome\USER Data\Default\Local Storage上的sqlite数据库

我还没有在网上看到任何人使用这种方法。也许这太危险了,Sqlite无法处理多个线程,我将浪费时间创建这个程序


那么我应该开始实施这个协议吗?我应该使用WebSocket吗?或者我应该尝试一下?

< p>我会从你的C++到浏览器,而不是直接使用WebSoCo(已经做到了),这样会让你的生活变得简单很多:)< /P>如果你想要实时的图形(即以秒刷新率),Web浏览器不是我的首选。这实际上是我最后的选择。尤其是我不会尝试使用你想使用的诡计。除非它只为你使用,没有人会使用它。你是对的,我希望使用webbrowser,因为这样程序可以在任何计算机上运行…web浏览器可以工作,但访问特定浏览器内部数据库可能不是很方便。从中央服务器推送Websocket(如果支持的话)可能是最好的解决方案,然后是所有浏览器都支持的常规AJAX调用,甚至是旧的浏览器。我也在考虑AdobeFlash。我不知道adobe flash会发生什么,这就是为什么我还没有学会如何使用它…如果浏览器变慢,我会试试。谢谢你的意见@托诺·南:你不明白他的答案。