<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          HIJK自動(dòng)化JavaScript WebAPI開發(fā)包

          聯(lián)合創(chuàng)作 · 2023-09-19 06:31

          HIJK是一個(gè)自動(dòng)化的WebAPI ALL-in-ONE開發(fā)工具包,使用了JDK8中新加入的執(zhí)行命令Nashorn jjs 啟動(dòng), 從服務(wù)器端到客戶端都使用統(tǒng)一的JavaScript語言, 所有修改都會(huì)在訪問時(shí)自動(dòng)加載,不需要再編譯.

          HIJK包括了完整的Web服務(wù)器,能直接存取非結(jié)構(gòu)JSON數(shù)據(jù)的數(shù)據(jù)庫(kù)引擎,多個(gè)常用Web功能的JavaScript封裝。開發(fā)效率高, 無配置,開發(fā)完的系統(tǒng)直接復(fù)制到另一臺(tái)機(jī)器就能以一致的方式運(yùn)行。所有代碼都是標(biāo)準(zhǔn)JavaScript,兼容全部JavaScript開發(fā)工具,使用簡(jiǎn)單的幾行代碼就能完成復(fù)雜的功能。運(yùn)行效率高,單機(jī)處理每秒幾千次的HTTP數(shù)據(jù)查詢請(qǐng)求無壓力。

          基本用法:

          新建一個(gè)javascript文件,寫入兩個(gè)HelloWorld

          hijk.api.helloworld = function() {
              return  "Hello World!";
          };
          hijk.api.helloworld2 = function() {
              return {MSG: 'Hello World!'};
          };

          然后把文件復(fù)制到 js 目錄下,這兩個(gè)函數(shù)就會(huì)自動(dòng)作為WebAPI執(zhí)行,支持文本及JSON數(shù)據(jù),也可以使用 http://localhost:8080/edit/js/demo.js 直接在線開發(fā) WebAPI 或者在線編寫html頁面.

          支持最新WebSocket WebAPI,可以通過 send(), onmessage() 與客戶端進(jìn)行雙向的數(shù)據(jù)通訊,使用這個(gè)功能只需要30行JavaScript代碼就能完成一個(gè)聊天室的服務(wù)器端開發(fā)。

          hijk.api.ws_helloname = function(socket, request, response) {
              socket.send("Name: ")
                    .onmessage(function(name) { 
                          send_all("Welcome " + name); 
                    });
          };

          通過標(biāo)準(zhǔn)HTTP及WebSocket協(xié)議提供的API能非常方便被Windows, Linux, Android, iOS, Windows Phone等各類終端機(jī)的應(yīng)用程序調(diào)用。同時(shí)HIJK開發(fā)包內(nèi)置了Web服務(wù)器,同時(shí)支持HTTP及HTTPS,只需要把 *.html 復(fù)制到 html 目錄就可以使用http(s)訪問了。

          支持動(dòng)態(tài)HTML函數(shù),可以在HTML頁面返回客戶端前進(jìn)行附加處理,例如替換自定義標(biāo)簽,擴(kuò)展標(biāo)準(zhǔn)標(biāo)簽,也可以在頁面中插入JSON數(shù)據(jù),再調(diào)用JSON-HTML模板引擎,這個(gè)函數(shù)可以跟各種HTML擴(kuò)展引擎結(jié)合。下面是一個(gè)簡(jiǎn)單的例子,在<head>中動(dòng)態(tài)插入搜索引擎會(huì)讀取的關(guān)鍵字部分

          hijk.api["/table1_template.html"] = function(file, map, request) { 
              function demo_server_template_processor(html, json) {
                  html = html.replaceFirst("<head>",
                          "<head><title>Server Process -" + json.record.name + "</title>" +
                          "<meta name='keywords' content='HIJK JavaScript WebAPI " + json.record.id + "' />" +
                          "<meta name='Description' content='HIJK HTML WebAPI Demo for template' />");
                  return html;
              }
              var html = file.html;
              var json = hijk.api.table1_template_json(map, request);
              html = demo_server_template_processor(html, json);
              return html;
          }
          帶有JSON HTML 模板引擎庫(kù),使用標(biāo)準(zhǔn)HTML創(chuàng)建模板,可以綁定JSON數(shù)據(jù),非常方便直接地使用從WebAPI中返回的數(shù)據(jù)。綁定語法簡(jiǎn)單 "{{name}}" 綁定JSON的一個(gè)屬性, "{{#names}}內(nèi)容{{/names}} " 綁定一個(gè)數(shù)組,并且foreach生成內(nèi)容。引入的是JavaScript引擎庫(kù),可以放到客戶端中進(jìn)行模板處理,不費(fèi)服務(wù)器的CPU,放心加載50000條數(shù)據(jù),不影響服務(wù)器。

          支持多線程。把一個(gè)普通function作為參數(shù)傳入sys.thread()就會(huì)轉(zhuǎn)到后臺(tái)線程中運(yùn)行, 通過 sys.threadreturn 返回運(yùn)算結(jié)果給主線程, 主線程中使用 take() 就能取得后臺(tái)線程運(yùn)行結(jié)果同時(shí)自動(dòng)完成線程同步。支持使用 sys.threadvar() 創(chuàng)建線程本地變量。

          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就能進(jìn)行可讀性高的分布式開發(fā),同時(shí)控制多臺(tái)Web服務(wù)器,只需要把遠(yuǎn)程機(jī)器地址及需要在遠(yuǎn)程執(zhí)行的function傳入 start_remote_process 就可以了.

          start_remote_process("ws://remotehost:9090/api/ws_eval",
                      function() { 
                          print("Hello World");
                      })

          支持?jǐn)?shù)據(jù)庫(kù)操作,在/js/目錄下的任何.js文件的任何位置寫入如下腳本指定主鍵及索引,自動(dòng)加載時(shí)就會(huì)自動(dòng)創(chuàng)建表table1, 智能化編程。

          hijk.table.table1 = {
              data: {"id": 0, "name": ""},
              key: ["id"],
              index: [["name"]]
          };

          數(shù)據(jù)庫(kù)可以直接存取非結(jié)構(gòu)化的JSON數(shù)據(jù)

          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;
              }
          };
          hijk.api.table1_select_sum = function() {
              var r = 0;
              hijk.db.select("from table1", [],
                      function(v) {
                          r += v.id;
                          return true;
                      });
              return r;
          };

          快捷系統(tǒng)備份,HIJK基于文件夾目錄設(shè)計(jì),包括數(shù)據(jù)庫(kù)文件都位于同一個(gè)目錄內(nèi),備份只需要復(fù)制整個(gè)文件夾,可以使用操作系統(tǒng)自帶的zip工具,一條命令完成壓縮加備份,系統(tǒng)還原只需要解壓縮文件夾。

          HIJK的代碼全部是JavaScript,并對(duì)Java調(diào)試器有很好的兼容性,代碼能快速閱讀,自由修改及測(cè)試。

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  九九热最新视频 | 中文字幕一级毛片 | 欧洲操逼免费看 | 国产传媒一区二区三区 | 亚洲大片xxxxx |