999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

船舶設(shè)備標(biāo)準(zhǔn)目錄Web異步樹的實(shí)現(xiàn)

2014-10-17 03:58:52楊東升
機(jī)電設(shè)備 2014年4期
關(guān)鍵詞:船舶標(biāo)準(zhǔn)設(shè)備

周 欣,陳 亮,陳 穎,楊東升

● (1.海裝上海局,上海 200083;2.海軍駐上海江南造船(集團(tuán))有限責(zé)任公司軍代表室,上海 201913;3.駐上海滬東中華造船(集團(tuán))有限公司軍代表室,上海 200083)

船舶設(shè)備標(biāo)準(zhǔn)目錄Web異步樹的實(shí)現(xiàn)

周 欣1,陳 亮2,陳 穎1,楊東升3

● (1.海裝上海局,上海 200083;2.海軍駐上海江南造船(集團(tuán))有限責(zé)任公司軍代表室,上海 201913;3.駐上海滬東中華造船(集團(tuán))有限公司軍代表室,上海 200083)

為實(shí)現(xiàn)船舶設(shè)備規(guī)范化管理,解決Web化的船舶機(jī)務(wù)管理系統(tǒng)中船舶設(shè)備樹形目錄加載頻繁刷新頁面的弊端,利用EasyUI框架,結(jié)合船舶維修保養(yǎng)體系代碼,生成了異步的船舶設(shè)備標(biāo)準(zhǔn)目錄。利用 window.setInterval(function,time)方法實(shí)現(xiàn)了異步樹中節(jié)點(diǎn)的查找和定位展開,提高了系統(tǒng)使用中設(shè)備的定位和設(shè)備信息查詢的效率。

CWBT;船舶設(shè)備目錄;異步樹

0 引言

標(biāo)準(zhǔn)的船舶設(shè)備目錄是船舶機(jī)務(wù)管理系統(tǒng)的重要組成部分,也是船舶設(shè)備規(guī)范管理的基礎(chǔ)。由于船舶機(jī)務(wù)管理系統(tǒng)的網(wǎng)絡(luò)化,為減少初始化數(shù)據(jù)的加載量和加載時(shí)間,創(chuàng)建基于Web的異步船舶設(shè)備標(biāo)準(zhǔn)目錄顯得極其重要。

傳統(tǒng)的樹形結(jié)構(gòu)的動(dòng)態(tài)加載會(huì)隨著頁面數(shù)據(jù)操作而不斷刷新整體頁面,不但影響用戶Web瀏覽體驗(yàn),完整的頁面?zhèn)鬏斠矔?huì)加重網(wǎng)絡(luò)負(fù)荷和服務(wù)器的工作量,對(duì)資源造成浪費(fèi)[1]。基于 Ajax技術(shù)的樹型結(jié)構(gòu)采用異步交互方式,可以有效地解決上述問題。EasyUI是一套基于Jquery框架上開發(fā)的Ajax開發(fā)框架,它提供了大量豐富實(shí)用的頁面組件[2],其中tree組件可以輕松的實(shí)現(xiàn)Web頁面上樹的增刪改拖功能,并可以通過Ajax技術(shù)把用戶的頁面操作、數(shù)據(jù)提交、服務(wù)器處理結(jié)果異步化,提高用戶與程序交互的簡(jiǎn)便性。

為便于非專業(yè)人員對(duì)機(jī)務(wù)管理系統(tǒng)中設(shè)備信息的查詢,異步的船舶設(shè)備標(biāo)準(zhǔn)目錄中節(jié)點(diǎn)的查找和定位展開的實(shí)現(xiàn)是關(guān)鍵。而目前大多創(chuàng)建的Web異步樹未實(shí)現(xiàn)此功能。

1 船舶設(shè)備代碼編制

為規(guī)范船舶設(shè)備的標(biāo)準(zhǔn)化管理,需要對(duì)船舶設(shè)備進(jìn)行統(tǒng)一的代碼規(guī)定,從而建立通用的船舶設(shè)備目錄。船舶維修保養(yǎng)體系(CWBT)[3]是將傳統(tǒng)的船舶維修管理和國內(nèi)外的船舶設(shè)備計(jì)算機(jī)管理信息系統(tǒng)的管理模式、流程相結(jié)合,形成集計(jì)劃、管理、執(zhí)行、監(jiān)督、指導(dǎo)于一體的一種新穎、科學(xué)、實(shí)用的現(xiàn)代船舶維修保養(yǎng)管理模式。考慮到船舶種類、功能不同,設(shè)備分類與設(shè)備代碼應(yīng)滿足現(xiàn)有各類運(yùn)輸船、工程船、艦船與海上設(shè)備等所需,CWBT采用四組代碼對(duì)船舶設(shè)備代碼進(jìn)行編制。CWBT設(shè)備代碼結(jié)構(gòu)表示如圖1所示。

圖1 CWBT設(shè)備代碼結(jié)構(gòu)圖

其中在CWBT中船舶設(shè)備類別按泛指功能分為30個(gè)主系統(tǒng),用二位英文字母表示;維修設(shè)備(部件)代碼有三位數(shù)字表示。

2 異步樹的設(shè)計(jì)與實(shí)現(xiàn)

船舶設(shè)備標(biāo)準(zhǔn)目錄實(shí)際上一種樹形結(jié)構(gòu),樹形結(jié)構(gòu)是軟件開發(fā)常用的一種數(shù)據(jù)設(shè)計(jì)結(jié)構(gòu),在桌面應(yīng)用程序中,它的實(shí)現(xiàn)已很成熟,而在Web中要實(shí)現(xiàn)可操作性的樹目錄需要考慮的技術(shù)要復(fù)雜很多。以下介紹如何利用EasyUI框架實(shí)現(xiàn)一個(gè)可以動(dòng)態(tài)操作的船舶設(shè)備標(biāo)準(zhǔn)目錄Web異步樹。

2.1 EasyUI樹的數(shù)據(jù)模式

EasyUI的tree組件實(shí)現(xiàn)的樹狀菜單中每個(gè)節(jié)點(diǎn)可以包含如表1中屬性:

表1 節(jié)點(diǎn)屬性

EasyUI的tree組件可以以JSON為數(shù)據(jù)源,JSON[4]是一種輕量級(jí)的數(shù)據(jù)交換格式,非常適合于服務(wù)器與JavaScript的交互。JSON的數(shù)據(jù)格式非常簡(jiǎn)單即名稱/值對(duì),名稱/值對(duì)包括字段名稱(在雙引號(hào)中),后面寫一個(gè)冒號(hào),然后是值。JSON對(duì)象是一個(gè)無序的“名稱/值對(duì)”集合,包含在花括號(hào)“{}”中;JSON數(shù)組是值的有序集合,包含在方括號(hào)“[]”中,值之間使用“,”(逗號(hào))分隔。下面是tree組件的JSON數(shù)據(jù)模式的一個(gè)實(shí)例:

2.2 數(shù)據(jù)庫設(shè)計(jì)

樹形菜單的數(shù)據(jù)加載方式有兩種:同步加載、異步加載。同步加載即在樹形菜單初始化時(shí)根據(jù)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫的表結(jié)構(gòu),利用遞歸方法,一次性全部加載所有節(jié)點(diǎn)數(shù)據(jù);異步加載是指在初始化時(shí)值加載根節(jié)點(diǎn)數(shù)據(jù),當(dāng)展開某節(jié)點(diǎn)的時(shí)候才去加載該節(jié)點(diǎn)下的子節(jié)點(diǎn)。對(duì)比可知異步樹的加載過程遞歸出現(xiàn)次數(shù)較少。在各種基于關(guān)系數(shù)據(jù)庫的應(yīng)用系統(tǒng)開發(fā)中,往往需要存儲(chǔ)樹形結(jié)構(gòu)[5]的數(shù)據(jù)。目前主要的方法有鄰接列表模型、改進(jìn)的前序遍歷樹模型等[6]。由于文中創(chuàng)建的標(biāo)準(zhǔn)的船舶設(shè)備目錄,無需進(jìn)行節(jié)點(diǎn)的增刪改操作,故使用鄰接列表模型。

根據(jù)EasyUI的tree控件的數(shù)據(jù)模式可知,要確定存儲(chǔ)異步樹數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)表至少應(yīng)有 id(節(jié)點(diǎn) id)、text(節(jié)點(diǎn)文本信息)、pid(節(jié)點(diǎn)的父節(jié)點(diǎn)id)這三個(gè)字段。根據(jù)鄰接列表模型建立表 CWBTCatalog,表 2為CWBTCatalog數(shù)據(jù)表的邏輯結(jié)構(gòu)設(shè)計(jì)。

表2 CWBTCatalog數(shù)據(jù)表的邏輯結(jié)構(gòu)

2.3 異步樹的實(shí)現(xiàn)

在異步樹的實(shí)現(xiàn)中,服務(wù)器端是采用Struts2[7]框架。異步樹實(shí)現(xiàn)的關(guān)鍵在于需要Web給tree組件提供JSON數(shù)據(jù)。具體流程為:根據(jù)樹節(jié)點(diǎn)的id獲取所有的子節(jié)點(diǎn)并存放在 ArrayList實(shí)例中,將 ArrayList實(shí)例轉(zhuǎn)化為JSONArray實(shí)例,將JSONArray實(shí)例轉(zhuǎn)化為字符串String。關(guān)鍵代碼如下所示:

JsonArray =

JSONArray.fromObject(treeNodeArray);//JsonArray為

JSONArray的一個(gè)實(shí)例,treeNodeArray為ArrayList實(shí)例,里面存放著樹節(jié)點(diǎn)

JsonArray.toString();//將JsonArray轉(zhuǎn)化為字符串

EasyUI的tree組件加載異步目錄樹的實(shí)現(xiàn)代碼:

$('#equipTree').tree({ //加載tree對(duì)象

url:"../ServerJsp/treeServer.jsp",//初始化時(shí),提供JSON數(shù)據(jù)模型的地址

onBeforeExpand:function(node){//展開節(jié)點(diǎn)前,tree對(duì)象根據(jù)所展開節(jié)點(diǎn)的id號(hào)加載子節(jié)點(diǎn)數(shù)據(jù)

$('#equipTree').tree('options').url="../ServerJsp/treeServer.jsp?id="+node.id;

})

服務(wù)器端代碼:

JSONTree jsonTree = new JSONTree();

String pid="";

if(request.getParameter("id")!=null){

pid = request.getParameter("id");//根據(jù)tree對(duì)象的加載請(qǐng)求獲取節(jié)點(diǎn)id值

response.setContentType("text/json;charset=utf-8");response.getWriter().write(jsonTree.getJSONString(pid));//將JSON數(shù)據(jù)返回給客戶端

}else{response.getWriter().write(jsonTree.getJSONString("CWBT"));

}

船舶設(shè)備標(biāo)準(zhǔn)目錄異步樹實(shí)現(xiàn)后的效果如圖2所示。

圖2 船舶設(shè)備標(biāo)準(zhǔn)目錄異步樹

3 異步樹節(jié)點(diǎn)的定位查找

單純地實(shí)現(xiàn)船舶設(shè)備標(biāo)準(zhǔn)目錄異步樹的意義不大,因?yàn)閷?duì)于非專業(yè)的人員而言,不了解某特定的設(shè)備處于設(shè)備系統(tǒng)體系的哪個(gè)子系統(tǒng)中,這樣在使用船舶機(jī)務(wù)管理系統(tǒng)時(shí),查找設(shè)備的效率低下。異步樹節(jié)點(diǎn)的定位查找、展開就顯得很重要。而異步樹是采用異步加載,要實(shí)現(xiàn)異步樹節(jié)點(diǎn)的定位查找、展開就得逐級(jí)加載、展開所查節(jié)點(diǎn)的所有父系節(jié)點(diǎn),然后再定位到所查節(jié)點(diǎn)。就此問題本文提出以下解決方法,如圖3所示。

圖3 解決方案流程圖

在此過程中難點(diǎn)在于第四步,即如何控制節(jié)點(diǎn)的查找、展開是在節(jié)點(diǎn)加載后執(zhí)行的。本文利用window.setInterval(function,time)來實(shí)現(xiàn),整個(gè)過程的關(guān)鍵代碼如下:

function searchTreeNode(equipTreeNodeId){

$.ajax({

url:"parentIdsInfo.action?nodeId="+equipTreeNodeId,//獲取父系節(jié)點(diǎn)id

根據(jù)設(shè)備節(jié)點(diǎn)id或名稱,船舶設(shè)備目錄樹定位展開效果如圖4所示。

4 結(jié)論

依照船舶維修保養(yǎng)體系(CWBT)代碼編制方法,采用鄰接列表模型建立了存儲(chǔ)船舶設(shè)備目錄樹節(jié)點(diǎn)信息的數(shù)據(jù)表,運(yùn)用EasyUI框架的tree組件實(shí)現(xiàn)了船舶設(shè)備標(biāo)準(zhǔn)目錄Web異步樹的生成。與傳統(tǒng)的Web異步樹相比,本文創(chuàng)新點(diǎn)在于利用window.setInterval(function,time)方法控制了節(jié)點(diǎn)的加載和執(zhí)行find、expand方法的時(shí)間差,實(shí)現(xiàn)了節(jié)點(diǎn)查找和定位展開,便于非專業(yè)人員對(duì)船舶設(shè)備目錄中設(shè)備的查找,進(jìn)而查看設(shè)備的詳細(xì)信息,提高了設(shè)備信息的獲取效率和學(xué)習(xí)效率。由于本文中節(jié)點(diǎn)數(shù)據(jù)的加載與節(jié)點(diǎn)查找、展開之間的時(shí)間差是人為設(shè)定的,會(huì)因?yàn)榫W(wǎng)速而受影響,如何精確智能判斷節(jié)點(diǎn)數(shù)據(jù)加載是否完畢將是今后研究的重點(diǎn)。

圖4 節(jié)點(diǎn)查找、定位展開效果圖

[1]湯曉燕.基于EasyUI框架的Web異步樹實(shí)現(xiàn)[J].電腦編程技巧與維護(hù), 2012(12): 92-93.

[2]謝紅龍.EasyUI框架的WEB異步操作樹分析與實(shí)現(xiàn)[J].現(xiàn)代商貿(mào)工業(yè), 2011(8): 251.

[3]褚前成.船舶機(jī)務(wù)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連海事大學(xué), 2011.

[4]邢四為.基于 JSON的信息交互系統(tǒng)的研究與實(shí)現(xiàn)[D].安徽:安徽大學(xué), 2013.

[5]汪建,方洪鷹,陳昌川.一種改進(jìn)的基于數(shù)據(jù)庫的樹存儲(chǔ)策略[J].重慶師范大學(xué)學(xué)報(bào):自然科學(xué)版, 2007,24(4): 50-52.

[6]侯爽.基于關(guān)系數(shù)據(jù)庫的文件樹存儲(chǔ)策略研究[J].電腦知識(shí)與技術(shù), 2010(6): 8155-8156.

[7]Struts2框架核心配置文件的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2013(2): 77-81.

Realization of Web Asynchronous Tree of Marine Equipment Standard Directory

ZHOU Xin1, CHEN Liang2, CHEN Ying, YANG Dong-sheng3
(1.Naval Armaments Department, Shanghai Bureau, Shanghai 200083, China; 2.Naval Representative Office at Jiangnan Shipyard (Group) Co., Ltd.Shanghai 201913, China; 3.Naval Representative Office at Hudong-Zhonghua Shipbuilding (Group) Co., Ltd., Shanghai 200083, China)

In order to realize the standard management of marine equipments and avoid the drawback that when the marine equipment directory tree in the networked marine service management system loads the page will refresh the page frequently, it uses the EasyUI frameset and combines the CWBT code to create asynchronous and standard marine equipment directory tree.The realization of node’s search and positioning in asynchronous tree using window.setInterval(function,time) method improves the efficiency of equipment positioning and the relevant information search.

CWBT; marine equipment directory tree; asynchronous tree

U672.9

A

周欣(1981-),男,本科,研究方向:船舶與海洋工程。

猜你喜歡
船舶標(biāo)準(zhǔn)設(shè)備
計(jì)算流體力學(xué)在船舶操縱運(yùn)動(dòng)仿真中的應(yīng)用
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
2022 年3 月實(shí)施的工程建設(shè)標(biāo)準(zhǔn)
《船舶》2022 年度征訂啟事
船舶(2021年4期)2021-09-07 17:32:22
船舶!請(qǐng)加速
忠誠的標(biāo)準(zhǔn)
美還是丑?
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
一家之言:新標(biāo)準(zhǔn)將解決快遞業(yè)“成長中的煩惱”
專用汽車(2016年4期)2016-03-01 04:13:43
主站蜘蛛池模板: 国产精品性| 国产小视频a在线观看| 成人久久精品一区二区三区| 永久天堂网Av| 日韩黄色精品| 天堂在线www网亚洲| a级毛片免费网站| 国产精品一区二区无码免费看片| 91麻豆国产视频| 亚洲第一视频免费在线| 国产00高中生在线播放| 天天综合网亚洲网站| 亚洲天堂自拍| 精品一区二区三区视频免费观看| 国产在线视频二区| 免费又黄又爽又猛大片午夜| 欧美三级不卡在线观看视频| 国产xx在线观看| 日本黄色不卡视频| www中文字幕在线观看| 亚洲大尺码专区影院| 国产麻豆精品久久一二三| 青青国产成人免费精品视频| 小说区 亚洲 自拍 另类| 91精品伊人久久大香线蕉| 日本91视频| 日本久久免费| 亚洲高清在线天堂精品| av一区二区人妻无码| 色噜噜中文网| 日本免费福利视频| 婷婷成人综合| 国产激情无码一区二区免费| 日本高清有码人妻| 在线欧美一区| 一级成人a毛片免费播放| 国产一区二区三区精品欧美日韩| 人人艹人人爽| 亚洲日韩精品无码专区97| 高清不卡毛片| 国产成人精品午夜视频'| 精品视频在线观看你懂的一区 | 亚洲国产精品不卡在线| 欧美黑人欧美精品刺激| 国产亚洲欧美日韩在线一区| 亚洲天堂精品在线观看| 久久久久免费精品国产| 91久久精品国产| 免费一级大毛片a一观看不卡| 久草性视频| 欧美中文字幕在线二区| 影音先锋丝袜制服| 57pao国产成视频免费播放 | 国产亚洲日韩av在线| 成人午夜久久| 四虎AV麻豆| 欧美不卡视频在线观看| 精品無碼一區在線觀看 | 日韩在线第三页| 欧美伦理一区| 精品少妇人妻无码久久| 97国产精品视频自在拍| 国产主播一区二区三区| 国模私拍一区二区| 亚洲欧美综合精品久久成人网| 最新国语自产精品视频在| 一级高清毛片免费a级高清毛片| 九九热在线视频| 91麻豆精品视频| 亚卅精品无码久久毛片乌克兰| 久久成人免费| 激情乱人伦| 国产手机在线ΑⅤ片无码观看| 亚洲天堂网2014| 免费毛片a| av在线人妻熟妇| 久久人午夜亚洲精品无码区| 亚洲一区精品视频在线| 欧美日韩国产一级| 国产打屁股免费区网站| 欧美另类视频一区二区三区| 久爱午夜精品免费视频|