Hprose 有三个使用 JavaScript 实现的版本,分别是:

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: 表示不支持

原文:

https://github.com/hprose/hprose-js/wiki/JavaScript-%E7%89%88%E6%9C%AC%E7%9A%84%E5%8C%BA%E5%88%AB