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. solr索引服务器的配置和solrj集成开发总结
  2. android bitmap 占用内存大小,drawable与bitmap内存占用大小
  3. boost::graph模块实现边列表算法上的连通分量
  4. android 代码获取屏幕图像,安卓获取屏幕以及获得像素点 ~ 大树洞
  5. FPGA/CPLD状态机稳定性研究
  6. bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)
  7. ~~朴素dijkstra算法 (搜索与图论)(附模板题AcWing 849. Dijkstra求最短路 I)
  8. linux系统批量杀掉进程命令,[Linux]使用awk批量杀进程的命令
  9. android中常用的开源项目
  10. CSDN新版下载频道介绍之三——用户权限及积分规则详解
  11. DateUtils解析
  12. Python制作反编译APK工具
  13. 计算机系大学生为什么选择在CSDN写博客?
  14. 《工业设计史》第八章:20世纪20、30年代的流行风格
  15. 常用开发工具及常用DOS命令
  16. linux iio子系统
  17. pyautogui入门学习之消息盒子
  18. exadata的infiniband交换机的ilom
  19. PS实例之制作晶莹剔透气泡
  20. 华为设备AP管理命令

热门文章

  1. 当PS遇上了AI:分割抠图算法总结
  2. you-get:一行命令下载视频和Python简单使用you-get
  3. MySQL 的物理备份、逻辑备份、增量备份
  4. 【Lemon】Python的函数
  5. 两种方法扫二维码下载APP,获取IPA安装包
  6. 西门子S7-1200PLC 四轴定位控制程序(自动螺丝机)
  7. Pytorch使用实践,教程,库,调优,计算量,模型搭建
  8. 行业分析-全球与中国SIM卡托市场现状及未来发展趋势
  9. 忘不了的伤---姜玉阳在线试听,忘不了的伤下载,忘不了的伤---姜玉阳歌词
  10. libsvm java 实例,libsvm-3.1