使用HTML5 localstorage来交换信息

时间:2013-02-05 03:55:49

标签: javascript browser websocket local-storage

我有一个用c ++编写的程序,它从this board读取值。无论如何那部分并不重要。我所拥有的是不断变化的数据,我想绘制这些数据。我希望使用Web浏览器来显示数据,因为有很多开源图形和图表用JavaScript编写。 所以我的问题是从我的c ++程序向浏览器发送数据

我已经调查过并且UDP在浏览器中不可用,所以我将不得不使用TCP。 TCP websockets并不那么快,我正在考虑使用html5 localstorage。我的意思是让我的c ++程序写入localStorage上的数据库,然后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>

该脚本需要54毫秒,并且读取和写入5000次!这意味着下次我不会为浏览器创建插件而只会实现某种协议使用localStorage交换信息。例如,我可以让浏览器等待变量x存在。一旦它存在,我然后通过浏览器创建一个变量y,通知c ++程序它已准备好接收数据,依此类推。 localStorage只是位于C:\ Users [USER] \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ Local Storage

的sqlite数据库

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

我应该开始实施这个协议吗?我应该使用websockets吗?或者我应该尝试https://stackoverflow.com/a/10219977/637142

1 个答案:

答案 0 :(得分:0)

我会使用node.js作为中间件从C ++到浏览器,而不是直接使用websocket(已经完成了)与http://socket.io/一起使用,这将使您的生活更轻松:)