1.8 JavaScript 版本的区别
优质
小牛编辑
126浏览
2023-12-01
Hprose 有三个使用 JavaScript 实现的版本,分别是:
- https://github.com/hprose/hprose-js(后面我们称它为 Javascript 版本)
- https://github.com/hprose/hprose-html5(后面我们称它为 HTML5 版本)
- https://github.com/hprose/hprose-nodejs(后面我们称它为 node.js 版本)
其中 JavaScript 是较早的版本,HTML5 版本是后来新加的版本,这两个版本都是为浏览器设计的。node.js 版本是为 node.js 平台专门设计的。
JavaScript 版本支持的浏览器和平台更多,比如 IE6 到 IE9,Safari 5,Opera,Netscape,Konqueror,甚至 Symbian 的浏览器都支持。
HTML5 版本只支持较新的对 HTML5 支持良好的浏览器,但是速度更快,体积更小,对二进制数据传输支持更好。
Hprose for JavaScript 在 2.0 版本之前,在功能上比 HTML5 版本要弱很多。不过在升级到 2.0 版本之后,HTML5 版本支持的大部分功能 JavaScript 版本也都支持了。比如对 WebSocket 的支持,对二进制数据传输的支持,对 TCP 的支持(仅支持某些平台)等等。
升级之后的 JavaScript 版本在 API 接口上也跟 HTML5 版本做了尽可能的统一。不过在某些地方仍然有些差别,比如对于属性的处理,有些属性在 JavaScript 版本中是以方法的形式来实现的,而在 HTML5 中则是以属性方式实现的。这样做的原因是,旧版本的浏览器没有提供对属性的封装功能。这些区别之处都会在文档中一一列出。如果在这方面遇到问题,只需查看一下该文档即可。
下面还有一份 hprose-js, hprose-html5 和 hprose-nodejs 的功能对比列表:
功能特征 | hprose-js | hprose-html5 | hprose-nodejs |
---|---|---|---|
二进制数据支持 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
浏览器应用 | :white_check_mark: | :white_check_mark: | :x: |
老旧版本的浏览器 | :white_check_mark: | :x: | :x: |
跨域支持 | Flash 和 CORS 方式 | CORS 方式 | :white_check_mark: |
HTTP 客户端 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
TCP 客户端 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
UNIX Socket 客户端 | :x: | :x: | :white_check_mark: |
WebSocket 客户端 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
服务器端应用程序 | :question: | :question: | :white_check_mark: |
命令行工具 | :question: | :question: | :white_check_mark: |
桌面图形界面应用程序 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
混合应用程序 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
HTTP 服务器 | :x: | :x: | :white_check_mark: |
TCP 服务器 | :x: | :x: | :white_check_mark: |
UNIX Socket 服务器 | :x: | :x: | :white_check_mark: |
WebSocket 服务器 | :x: | :x: | :white_check_mark: |
Promises/A+ 规范支持 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
RequireJS(AMD) | :white_check_mark: | :white_check_mark: | :x: |
SeaJS(CMD) | :white_check_mark: | :white_check_mark: | :x: |
CommonJS | :white_check_mark: | :white_check_mark: | :white_check_mark: |
全局对象(HproseClient) | :white_check_mark: | :x: | :white_check_mark: |
名空间(hprose.Client) | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- :question: 表示未测试,可能支持
- :white_check_mark: 表示支持
- :x: 表示不支持