`

JavaScript一站式开发工具包介绍

阅读更多

本文介绍使用统一的JavaScript语言处理开发过程中的各部分,包括 WebAPI,AJAX,数据库,多线程,分布式编程,服务器监控等。

 

一 什么是HIJK

 

HIJK是一个自动化的JavaScript WebAPI开发工具包,内置了HTTP服务器,数据库引擎,和各种常用功能的JavaScript封装,是一个开箱即用的开发工具包,基于Java8最新的功能,无需安装,无需配置,开发完的系统直接复制到另一台机器就能以一致的方式运行,系统压缩备份只需要直接一条zip压缩命令压缩整个文件夹就完成,数据库数据同时也位于HIJK目录内,无任何导入,导出命令需要。

 

二 启动开发服务器

 

设置 PATH 到 /JAVA8_HOME/bin

jjs build.js

windows run  ; linux ./run.sh

 

三 Hello World!

 

HIJK是一个自动化的WebAPI开发包,同时使用的是JavaScript语言,现在所有主流的Web开发工具都支持JavaScript。要实现HelloWorld API,只需要使用记事本写个标准的JavaScript函数,如下

 

hijk.api.helloworld = function() {

    return  "Hello World!";

};

hijk.api.helloworld2 = function() {

    return {MSG: 'Hello World!'};

};

 

然后把这个文件复制到 HIJK/js/ 目录内, 现在这个函数就能直接通过HTTP调用,向外部提供Web服务了。 在需要的时候可以使用 http://localhost/edit/js/demo.js 地址直接在线编写代码, 无需手工编译,工具包会自动加载修改过的代码。

 

四 在客户端使用JavaScript调用 API 服务

 

        function request(api, fun) {

            var req = new XMLHttpRequest();

            req.open("GET", api, true);

            req.onreadystatechange = function() {

                if (req.readyState === 4 &&  req.status === 200) {

                    var o = eval("(" + req.responseText + ")");

                    fun(o);

                }

            };

            req.send();

        }

        function hello() {

            request("/api/helloworld2", function(o) {

                alert(o.MSG);

            });

        }

 

现在完成了一个从服务器到客户端的全开发过程,简单易用,统一JavaScript语言

 

五 访问 HTTP 请求的参数

 

WebAPI参数从JavaScript函数的第一个参数中传入,像操作普通JSON属性一样访问参数值,如 /api/get?id=99&name=andy 使用如下方式读取参数

hijk.api.get = function(map,request) {

    var msg = {

        url: request.getRequestURI(),

        id : map.id[0],

        name: map.name[0] 

    };

    return msg;

};

 

六 WebSocket WebAPI

 

HIJK WebAPI支持 WebSocket, 可进行双向数据通信, 把函数名用 ws_ 作为前缀, 开发包就会自动采用WebSocket 模块进行处理,  通过 socket.send()发送数据,通过socket.onmessage()监听消息。使用HIJK的WebSocket WebAPI只需要 30 行简洁易读的代码就能完成一个实时网络聊天室的服务器端开发,不需要了解TCP的各种连接等待机制。 

 

hijk.api.ws_helloname = function(socket, request, response) {

    socket.send("Name: ")

          .onmessage(function(name) { 

                sendall("Welcome " + name); 

          });

};

 

七 使用JavaScript进行多线程操作

 

任何一个普通JavaScript函数,只需要传入 sys.thread() , 就会作为后台线程运行,HIJK提供一个 sys.threadreturn 队列保存线程运行结果,在主线程中通过 take() 取回后台线程的运行结果, 整个流程自动完成线程同步,无需复杂的线程处理技巧。

hijk.api.multi_thread = function() {

    var results = sys.threadreturn(2);

 

    //Thread 1

    sys.thread(function() {

        for (var i = 1; i <= 10000; i++) {       }

        results.put("T01-" + c);

    });

 

    //Thread 2

    sys.thread(function() { 

        for (var i = 10001; i <= 20000; i++) {   }

        results.put("T02-" + c);

    });

 

    var rs = []; 

    rs.push(results.take());

    rs.push(results.take()); 

    return rs;

};

 

八 使用JavaScript进行分布式编程

 

要进行分布式编程,首先启动两台Web服务器,这里一台使用 8080 端口,一台使用 9090 端口。 使用两个控制台,分别执行下面的命令启动

8080服务器

jjs build.js -- 8080 

Windows run8080 ; Linux ./run8080.sh

 

9090服务器

jjs build.js -- 9090 

Windows run9090 ; Linux ./run9090.sh

 

在 8080服务器的控制台上输入如下 JavaScript

(

start_remote_process("ws://localhost:9090/api/ws_eval",

            function() { 

                print("Hello World");

            })

)

 

这些代码是在8080这台机器上输入的,start_remote_process 会把传入的 function 转到9090这台机器上执行,非常简洁地实现了分布式开发,在一台机器上完成对多台机器的运算操控。

 

九 数据库操作

 

9.1定义表及索引

HIJK的数据表是采用JavaScript定义的方式,然后由开发工具包自动创建的,可以存取无结构化的数据,只需要在 HIJK/js/ 目录内的任何.js文件的任何位置中写入

hijk.table.table1 = {

    data: {"id": 0, "name": ""},

    key: ["id"],

    index: [["name"]]

};

 

开发工具包就会自动创建一个叫'table1'的表,表的主键是'id'字段, 并且使用一个'name'字段作为索引

 

9.2 插入及访问数据

直接对JSON数据进行插入,数据无结构化,可以随意设置字段

hijk.api.table1_insert = function() {

    var tid = hijk.db.id();

    var v = {

        id: tid,

        name: "name" + tid,

        fieldA: "fieldA" + tid,

        fieldB: "fieldB" + tid

    };

    if (hijk.db.insert("table1", v)) {

        return tid;

    } else {

        return -1;

    }

};

 

采用SQL-Like的方式结合JavaScript代码自由访问数据字段, 如果数据从WebAPI中返回,HIJK开发工具包会自动把它转为JSON字符串格式.

hijk.api.table1_select = function() {

    var r = hijk.db.select("from table1");

    return r;

};

hijk.api.table1_select_sum = function() {

    var r = 0;

    hijk.db.select("from table1", [],

            function(v) {

                r += v.id;

                return true;

            });

    return r;

};

 

十 性能测试

 

从数据库中读数据然后转为JSON字符串通过HTTP从Web中返回,每秒能达到3000个请求以上,满足大部分应用系统对实时数据访问的性能要求。

Document Path:          /api/table1_selectkey?id=12600

Concurrency Level:     1000

Time taken for tests:    23.092 seconds

Complete requests:     100000

Failed requests:           0

Write errors:                 0

Requests per second:  4330.43 [#/sec] (mean)

 

十一 JavaScript小历史

 

JavaScript被引入作为服务器编程语言的时间

Netscape introduced an implementation of JavaScript for server-side scripting with Netscape Enterprise Server, first released in December, 1994 (soon after releasing JavaScript for browsers).(来源)

 

JavaScript的初始设计,这文章是在1996年3月发表的

Netscape Enterprise Server also supports Java and JavaScript, which enables users to build applications that run on either the client or server anywhere on the network. This support enables developers to create content applications that can run on multiple platforms without recompiling.  (来源)

 

 

扩展资源:

HIJK开发工具包还带的一些控制台小命令,如输入 online() 能查看在线连接数及内存使用数,dbprint('from table') 能查看数据库数据。

 

更多操作功能例子及源代码:

1.HIJK 自动化 JavaScript WebAPI 开发工具包

2.iBoxDB数据库引擎介绍

 

0
0
分享到:
评论

相关推荐

    javaScript开发工具

    IDE如Visual Studio Code、WebStorm、Eclipse等提供了一站式的解决方案,包括代码编辑、调试、自动完成、语法检查、版本控制等功能。而文本编辑器如Sublime Text、Atom、VS Code(虽然也可视为IDE)则更注重轻量级和...

    基于JavaScript的APIAuto敏捷开发一站式HTTP接口工具设计源码

    该项目是一款基于JavaScript开发的敏捷开发一站式HTTP接口工具源码,包含401个文件,涵盖201个JavaScript文件、100个HTML文件、63个CSS文件以及各类辅助文件,如map、png、psd、svg、md、json、gitignore等。该工具...

    Dojo工具包javascript

    Dojo的核心理念是提供一个全面的、一站式的解决方案,涵盖了从页面加载到用户交互的各种需求。 在这个0.40版本中,我们可以期待看到以下主要知识点: 1. **模块化系统**:Dojo使用AMD(Asynchronous Module ...

    Web软件开发工具包

    在学习Web开发时,IDE(集成开发环境)如IntelliJ IDEA或Eclipse也非常重要,它们集成了多种功能,包括代码编辑、调试、版本控制等,为开发者提供了一站式的工作环境。在线代码托管平台如GitHub或GitLab,提供了代码...

    建站工具包

    【建站工具包】是一个集合了多种用于网站建设的软件资源,旨在帮助用户更高效地进行网站开发、管理和优化。这个工具包中包含了三个关键组件:网页加密专家、文本替换专家以及最强的ASP编辑工具。 首先,我们要理解...

    jQuery EasyUI 1.5.1 离线中文API文档 含完整开发工具包+皮肤+扩展+演示+各版权API chm 最新 最全 纯净

    总的来说,这个压缩包是一个完整的jQuery EasyUI开发环境,提供了从文档学习、开发工具到示例演示的一站式解决方案,对于任何使用jQuery EasyUI进行Web开发的人员来说都是极具价值的资源。通过深入学习和实践,...

    网站开发工具包

    这个名为“网站开发工具包”的压缩文件显然包含了这些关键元素的参考资料,为开发者提供了一站式的自学和查询资源。 首先,我们来看HTML(HyperText Markup Language),它是网页内容的基础结构语言。HTML5是其最新...

    wxapi微信小程序开发接口工具包

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、一站式的开发体验。在微信小程序的开发过程中,开发者通常需要处理与微信服务器的交互,包括用户授权、数据交换、支付功能...

    jQuery EasyUI 1.4 简体中文API文档 含完整开发工具包+皮肤+扩展+演示2

    总的来说,这个jQuery EasyUI 1.4的资源包为开发者提供了一站式的开发环境,无论你是初学者还是有经验的开发者,都能从中受益。通过深入研究API文档、实践演示示例并利用提供的工具,你可以高效地创建出美观且功能...

    基于Qt开发的小工具包.zip

    Qt库包含各种图形用户界面(GUI)组件、网络通信功能、数据库接口等,而Qt Creator则是一个集成开发环境,提供了代码编辑、构建、调试等一站式服务。 2. **QWidgets模块** 小工具包中可能使用了Qt的QWidgets模块,...

    JavaScript富应用开发

    这本书对想要深入理解JavaScript富应用开发的开发者来说是一份宝贵的资源,它不仅会涵盖理论知识,还会包含实践案例和最佳实践,帮助读者将所学应用到实际项目中。通过阅读和学习,开发者可以提升自己的技能,构建出...

    JavaScript开发技术大全(原书光盘)

    《JavaScript开发技术大全》这本书及其配套光盘提供了全面深入的JavaScript学习资源,帮助开发者掌握这一强大工具。 JavaScript最初由Netscape公司的Brendan Eich设计,目的是为了解决Web页面的交互性问题。它是一...

    一站下载:各种jar包、开发工具、技术文档

    尚硅谷技术资料下载平台提供了这些资源的免费下载,方便开发者一站式获取。同时,它还提供了技术交流的QQ群,为用户提供了互相学习和讨论的社区环境。这个平台不仅解决了开发者寻找资源的问题,也搭建了一个学习和...

    腾讯云微信小程序一站式解决方案客户端示例

    腾讯云微信小程序一站式解决方案客户端示例是一套完整的开发工具包,旨在帮助开发者高效地构建和部署微信小程序。这个解决方案融合了腾讯云的强大云计算能力与微信小程序的便捷用户体验,为开发者提供了一个从开发到...

    jQuery EasyUI 1.4.5 离线简体中文API文档 含完整开发工具包+皮肤+扩展+演示

    jQuery EasyUI 是一个基于 jQuery 的前端...总的来说,jQuery EasyUI 1.4.5 提供了一站式的前端开发解决方案,无论你是初学者还是有经验的开发者,这个离线包都能满足你的需求,让你在构建富交互的Web应用时事半功倍。

    sagui提供了构建测试和开发现代JavaScript应用所需的工具

    通过这些工具的集成,`sagui` 提供了一站式解决方案,开发者无需分别安装和配置各个工具,大大降低了初始设置的复杂度。 在构建方面,`sagui` 自动处理源代码的编译、优化和打包,支持热模块替换(Hot Module ...

    微信小程序源码-腾讯云小程序一站式解决方案.zip

    在这个“微信小程序源码-腾讯云小程序一站式解决方案.zip”压缩包中,包含了腾讯云提供的小程序开发所需的一整套资源和模板代码,旨在帮助开发者快速构建自己的小程序。 首先,我们要理解什么是微信小程序。它是一...

    Flat UI工具包 v2.4.0.zip

    建站模板意味着这个工具包内可能包含了一系列预设的网页布局和组件,如导航栏、按钮、表单、图标等。这些模板可以方便用户快速创建网站的各个页面,减少了从头设计的时间和工作量。 系统软件工具标签可能是指这个...

    JavaScript 程序开发手册.rar_javascript_javascript manual_javascript 手册

    随着时间的推移,JavaScript已经成为构建动态、响应式网站不可或缺的一部分,不仅局限于浏览器端,还广泛应用在服务器端(Node.js)、移动应用、游戏开发等领域。 《JavaScript程序开发手册》是一部全面介绍...

    php网站开发集成工具

    这种工具将MySQL数据库、Apache Web服务器和PHP解释器等关键组件整合在一起,为开发者提供了一站式的解决方案。 标题中的“php网站开发集成工具”通常指的是能够快速搭建和管理PHP开发环境的软件,如我们常见的...

Global site tag (gtag.js) - Google Analytics