Javascript中使用protobuf
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相关推荐
- JavaScript 中的BOM对象
认识BOM操作 BOM :浏览器对象模型(Browser Object Model) 简称BOM,由浏览器提供的用于处理文档(document)之外的所有内容的其他对象 比如navigator.loc ...
- 浅析 JavaScript 中的 函数 uncurrying 反柯里化
柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...
- JavaScript中,this的绑定规则
对于 JavaScript 新手来说,this 是非常基础同时也难以理解的知识点. 比如下面的代码,this 指向就有三种方式. 在<你不知道的 JavaScript>一书中,我总算比较清 ...
- Javascript中undefined,NaN等特殊比较
以下内容转自: http://blog.csdn.net/hongweigg/article/details/38090093 1.问题:在Javascript中,typeof(undefined) ...
- Javascript中二进制数据处理方法
Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html
- JavaScript 中的有限状态机
http://www.ibm.com/developerworks/cn/web/wa-finitemach/ JavaScript 中的有限状态机 Page navigation 系列文章 有限状态 ...
- 在Javascript中使用面向对象的编程
by Mike Koss March 26th, 2003 这是一篇,我个人认为最好的,Javascript面向对象编程的文章.翻译不好的地方,还望大家指正,谢谢. 如果您需要,可以访问下面的地址取得 ...
- 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...
统一资源定位符(缩写URL)是对Web资源(网页,图像,文件)的引用.URL指定资源位置和检索资源的机制(http,ftp,mailto). 例如,这是此博客文章的URL: 通常,您需要访问URL的特 ...
- 在javascript中判断类型
String 一个字符串始终是一个字符串,所以这一块是很容易.除非使用new(new String)调用,否则typeof将返回"object".所以也要包含那些可以使用的字符串i ...
最新文章
- solr索引服务器的配置和solrj集成开发总结
- android bitmap 占用内存大小,drawable与bitmap内存占用大小
- boost::graph模块实现边列表算法上的连通分量
- android 代码获取屏幕图像,安卓获取屏幕以及获得像素点 ~ 大树洞
- FPGA/CPLD状态机稳定性研究
- bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)
- ~~朴素dijkstra算法 (搜索与图论)(附模板题AcWing 849. Dijkstra求最短路 I)
- linux系统批量杀掉进程命令,[Linux]使用awk批量杀进程的命令
- android中常用的开源项目
- CSDN新版下载频道介绍之三——用户权限及积分规则详解
- DateUtils解析
- Python制作反编译APK工具
- 计算机系大学生为什么选择在CSDN写博客?
- 《工业设计史》第八章:20世纪20、30年代的流行风格
- 常用开发工具及常用DOS命令
- linux iio子系统
- pyautogui入门学习之消息盒子
- exadata的infiniband交换机的ilom
- PS实例之制作晶莹剔透气泡
- 华为设备AP管理命令