protobuf是由google推出的和语言无关和平台无关,可扩展的序列化数据结构协议,类似于XML,但是比XML更小、更快、更简单。protobuf几乎支持当前的大部分语言,当然也支持JavaScript。

JavaScript使用protobuf主要有如下几个步骤:

1、下载一个编译protobuf的js编译器。

https://github.com/protocolbuffers/protobuf/releases

2、准备一个proto文件,personTest.proto

syntax = "proto2";message Person {required string name = 1;required int32 id = 2;optional string email = 3;
}

3、使用 " --js_out=import_style=commonjs,binary:." "语句利用protobuf的编译器编译proto文件将会在该目录下生成名为personTest_pb.js的编译后的js文件;

4、该编译文件的使用。

<1>、需要再次将该Js打包,需要一个引入文件require.js,一个打包的browserify.js/webpack等;

npm install require -g
npm install browserify -g
npm install google-protobuf

<2>、然后新建一个打包的js文件,export.js

var address = require('./personTest_pb');
module.exports = {
DataProto: address
}

<3>、然后执行打包命令“browserify exprort.js -o personTest_main.js”,打包完成的js就可以使用了。

<4>、引入js文件使用;

<html>  <head>  <script type="text/javascript" src="./personTest_main.js"></script> </head><body>protobuf</body><script type="text/javascript">var person1 = new proto.Person();     //Address对应的就是proto文件中message 名person1.setName("Tom");person1.setId("2");person1.setEmail("xxxxxxxxx@xx.com");console.log(person1.toObject());//{email: "xxxxxxxxx@xx.com",id: "2",name: "Tom"}console.log(person1.getName());    //Tom</script>
</html>

5、protobuf在js中的api,在google-protobuf中查询即可。

https://developers.google.cn/protocol-buffers/docs/reference/javascript-generated

Javascript中使用protobuf相关推荐

  1. JavaScript 中的BOM对象

    认识BOM操作 BOM :浏览器对象模型(Browser Object Model) 简称BOM,由浏览器提供的用于处理文档(document)之外的所有内容的其他对象 比如navigator.loc ...

  2. 浅析 JavaScript 中的 函数 uncurrying 反柯里化

    柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...

  3. JavaScript中,this的绑定规则

    对于 JavaScript 新手来说,this 是非常基础同时也难以理解的知识点. 比如下面的代码,this 指向就有三种方式. 在<你不知道的 JavaScript>一书中,我总算比较清 ...

  4. Javascript中undefined,NaN等特殊比较

    以下内容转自: http://blog.csdn.net/hongweigg/article/details/38090093 1.问题:在Javascript中,typeof(undefined) ...

  5. Javascript中二进制数据处理方法

    Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html

  6. JavaScript 中的有限状态机

    http://www.ibm.com/developerworks/cn/web/wa-finitemach/ JavaScript 中的有限状态机 Page navigation 系列文章 有限状态 ...

  7. 在Javascript中使用面向对象的编程

    by Mike Koss March 26th, 2003 这是一篇,我个人认为最好的,Javascript面向对象编程的文章.翻译不好的地方,还望大家指正,谢谢. 如果您需要,可以访问下面的地址取得 ...

  8. 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...

    统一资源定位符(缩写URL)是对Web资源(网页,图像,文件)的引用.URL指定资源位置和检索资源的机制(http,ftp,mailto). 例如,这是此博客文章的URL: 通常,您需要访问URL的特 ...

  9. 在javascript中判断类型

    String 一个字符串始终是一个字符串,所以这一块是很容易.除非使用new(new String)调用,否则typeof将返回"object".所以也要包含那些可以使用的字符串i ...

最新文章

  1. 移动端iPhone系列适配问题的一些坑
  2. 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)
  3. react学习笔记(二)编写第一个react组件
  4. 报名照片审核处理工具_初级报名!你的照片怎么处理才能通过审核
  5. geek 创业型网站
  6. 命令测试post_性能测试脚本编写之三
  7. 03-命令图片.doc
  8. MIME媒体类型:简介,作用(描述并标记多媒体内容),示例
  9. visual studio内存溢出检测工具_详解JVM内存管理与垃圾回收机制2 何为垃圾
  10. 如何利用c语言写九九乘法表
  11. 全球及中国树脂晶圆切割刀片行业需求状况及竞争前景分析报告2021-2027年
  12. 史上最详细的Maven安装教程
  13. 如何使用小米手机的便签功能
  14. 利用python requests库在百度图库上下载图片
  15. 20170330今日头条笔试题
  16. 数据结构手把手教学——单向循环链表
  17. NOIP总结与反思及对今后的期望
  18. ASCII码对应表chr(9)、chr(10)、chr(13)、chr(34)、chr(39)、chr(46)
  19. 对于神经网络学习 Maxwell 方程的思考——泛化能力
  20. 基于web在线购物商城网站的设计与实现(学生网页设计作业源码)

热门文章

  1. TSINGSEE青犀视频官网全新改版即将上线,系统界面迎来整体升级
  2. 青少年python编程比赛试题答案_中国大学moocPython编程基础试题及答案
  3. 数字化和网络化双重驱动下 周界安防产品迎来新变革
  4. Pdf文件打印功能恢复(绿色版)
  5. 用户管理系统 + 口算练习
  6. android视频播放器轮播,嵌入 ViewPager 的视频播放器
  7. 概率论:条件概率与乘法
  8. 办公室的衣着打扮 FORMAL, BUSINESS CASUAL,AND CASUAL
  9. 字符串模拟--1 聊天止于呵呵
  10. 从TCP三次握手说起——浅析TCP协议中的疑难杂症