<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 一、介紹 API文檔:https://www.npmjs.com/package/protobufjs Protocol Buffers是Google公司開發的一種數據描述語言,類似于XML能夠將結構化數據序列化,可用于數據存儲、通信協議等方面。它不依賴于語言和平臺并且可擴展性極強。現階段官方支持C++、JAVA、Python等三種編程語言,但可以找到大量的幾乎涵蓋所有語言的第三方拓展包。 ProtoBuf.js是基于ByteBuffer.js的Protocol Buffers純Javascript實現。主要功能是解析.proto 文件,構建message類,和簡單的編碼、解碼。 ## 二、優勢 同為數據的存儲格式,和json相比,Protocol Buffers的優點主要體現在性能和體積上,性能方面需要實際的測試,暫且不說,數據體積方面的優勢是比較明顯的,例如,一個json文件: ~~~ [ {"Name": "zhangsan", "Gender": 0, "Age": 18}, {"Name": "lisi", "Gender": 1, "Age": 19} ] ~~~ 再看一個protobuf文件: ~~~ message Person { required string Name = 1; optional int32 Gender = 2; optional int32 Age = 3; } ~~~ ## 三、安裝 npm安裝地址:https://www.npmjs.com/package/protobufjs ~~~ npm install protobufjs [--save --save-prefix=~] ~~~ CDN方式: ~~~ <script type="text/javascript" src="./protobuf.js"></script> ~~~ ## 四、使用 1、Load 加載(默認是相對路徑引入.json文件) ~~~ var locProto, protobuf.load(BASE_ASSET_ROOT_URL+'/test.json', function(err, root) { locProto = root.lookupType("Loc.flight"); }); ~~~ 2、fromJSON加載 ~~~ var jsonDescriptor = require("./test.json"); var root = protobuf.Root.fromJSON(jsonDescriptor); var locProto = root.lookupType("Loc.flight"); ~~~ 3、通過命令行生成test.json ~~~ pbjs -t json test.proto > test.json ~~~ ## 五、修改protobuf.js里的fetch函數,使之可以域方式加載 搜索關鍵字 ~~~ function fetch(filename, weak) { // ... ~~~ 找到 `fetch(self.resolvePath("", filename));` 添加如下判斷 ~~~ if(!/^http/.test(filename)) { if (util.isString(filename)) filename = [ filename ]; filename.forEach(function(filename) { fetch(self.resolvePath("", filename)); }); } else { fetch(filename); } ~~~ 示例: ``` protobuf.load('http://www.xxx.com/vendor/flightloc.json', function(err, root) { locProto = root.lookupType("Loc.SubscribeFlightLoc"); }); ``` 參考鏈接: https://www.cnblogs.com/darrenhwang/p/7058853.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看