[發(fā)明專(zhuān)利]模塊解析的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201710399282.0 | 申請(qǐng)日: | 2017-05-31 |
| 公開(kāi)(公告)號(hào): | CN108984189B | 公開(kāi)(公告)日: | 2022-04-12 |
| 發(fā)明(設(shè)計(jì))人: | 李大雙;李剛松;劉文岡;李銘銅 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司 |
| 主分類(lèi)號(hào): | G06F8/65 | 分類(lèi)號(hào): | G06F8/65;G06F8/71;G06F9/445;G06F9/455;G06F16/957 |
| 代理公司: | 中原信達(dá)知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11219 | 代理人: | 張一軍;姜?jiǎng)?/td> |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 模塊 解析 方法 裝置 | ||
本發(fā)明實(shí)施例提供一種模塊解析的方法和裝置,能夠簡(jiǎn)化模塊合并的過(guò)程,降低模塊的解析難度;同時(shí)能夠控制模塊的更新,提供模塊的不同版本。本發(fā)明實(shí)施例的模塊解析的方法包括:根據(jù)模塊的ID與版本號(hào)生成模塊鏈接,基于所述模塊鏈接生成模塊獲取請(qǐng)求;發(fā)送所述模塊獲取請(qǐng)求;加載所述模塊以獲取所述模塊的外部接口。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種模塊解析的方法和裝置。
背景技術(shù)
移動(dòng)web前端開(kāi)發(fā)是互聯(lián)網(wǎng)技術(shù)中非常重要的一個(gè)環(huán)節(jié),呈現(xiàn)在用戶(hù)面前的各種形態(tài)的頁(yè)面都是由前端開(kāi)發(fā)最終完成,前端開(kāi)發(fā)需要完成的工作有頁(yè)面html、樣式css和邏輯javascript。
對(duì)于java腳本(javascript,簡(jiǎn)稱(chēng)js)的模塊化開(kāi)發(fā),隨著頁(yè)面復(fù)雜度的變大,需要開(kāi)發(fā)人員協(xié)同工作,需要提前引入公共模塊,這些公共模塊之間往往相互依賴(lài),被依賴(lài)的js文件必須提前引入,這對(duì)引入順序提出了嚴(yán)格要求,同時(shí)代碼之間的耦合度較大。
現(xiàn)有技術(shù)一般采用通用模塊,如seajs,來(lái)解決以上問(wèn)題。Seajs的解析步驟如下:
步驟S11.在頁(yè)面引入seajs的模塊定義文件,進(jìn)入入口函數(shù)use方法。
步驟S12.構(gòu)建初始模塊,定義初始模塊的依賴(lài)模塊及回調(diào)函數(shù)。
步驟S13.加載并定義所有依賴(lài)模塊,進(jìn)入加載(onload)方法。
步驟S14.執(zhí)行初始模塊的回調(diào)函數(shù),利用獲取(require)方法、工廠(factory)方法獲取模塊的外部接口返回。具體實(shí)現(xiàn)流程可參見(jiàn)圖1。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
1.合并請(qǐng)求時(shí),需要合并模塊,需要用專(zhuān)業(yè)的合并工具做模塊格式的轉(zhuǎn)換,需要根據(jù)文件名自動(dòng)加上id。如果不加id,只有最后一個(gè)模塊定義被識(shí)別,這使得模塊合并比較復(fù)雜也容易出現(xiàn)問(wèn)題。
2.對(duì)于模塊id的管理比較寬泛,無(wú)法保證一個(gè)模塊id對(duì)應(yīng)于一個(gè)模塊。解析時(shí),用一個(gè)模塊id根據(jù)配置文件等信息,反射出對(duì)應(yīng)的完整url,然后再與模塊進(jìn)行匹配,增加了模塊解析難度,也增加了模塊錯(cuò)亂的風(fēng)險(xiǎn)。
3.模塊的更新比較復(fù)雜,開(kāi)發(fā)人員也難以選擇所需版本的模塊。
4.沒(méi)有將模塊緩存在本地,不能減少請(qǐng)求,增加了帶寬的浪費(fèi)。
5.代碼量較大,也沒(méi)有實(shí)現(xiàn)對(duì)加載css文件的支持。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種模塊解析的方法和裝置,能夠簡(jiǎn)化模塊合并的過(guò)程,降低模塊的解析難度;同時(shí)能夠控制模塊的更新,提供模塊的不同版本。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種模塊解析的方法。
本發(fā)明實(shí)施例的一種模塊解析的方法用于在Web頁(yè)面加載模塊,包括:根據(jù)模塊的ID與版本號(hào)生成模塊鏈接,基于所述模塊鏈接生成模塊獲取請(qǐng)求;發(fā)送所述模塊獲取請(qǐng)求;加載所述模塊以獲取所述模塊的外部接口。
可選地,所述模塊包括待加載模塊、及源于所述待加載模塊的依賴(lài)模塊。
可選地,所述方法進(jìn)一步包括:將所述模塊鏈接分成多組,其中每一組對(duì)應(yīng)于一模塊獲取請(qǐng)求。
可選地,所述方法進(jìn)一步包括:在將所述模塊鏈接分成多組之后,如果判斷緩存中存儲(chǔ)與所述模塊鏈接對(duì)應(yīng)的模塊,則將該模塊鏈接去除。
可選地,基于所述模塊鏈接生成模塊獲取請(qǐng)求包括:對(duì)于每一組模塊鏈接,將該組的模塊鏈接合并為一鏈接,根據(jù)合并后的鏈接生成一模塊獲取請(qǐng)求。
可選地,所述方法進(jìn)一步包括:在加載所述模塊之前,如果判斷在緩存中存儲(chǔ)了所述模塊,則獲取所述模塊的外部接口。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710399282.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線(xiàn)程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 光源裝置、照明裝置、液晶裝置和電子裝置
- 預(yù)測(cè)裝置、編輯裝置、逆預(yù)測(cè)裝置、解碼裝置及運(yùn)算裝置
- 圖像形成裝置、定影裝置、遮光裝置以及保持裝置
- 打印裝置、讀取裝置、復(fù)合裝置以及打印裝置、讀取裝置、復(fù)合裝置的控制方法
- 電子裝置、光盤(pán)裝置、顯示裝置和攝像裝置
- 光源裝置、照明裝置、曝光裝置和裝置制造方法
- 用戶(hù)裝置、裝置對(duì)裝置用戶(hù)裝置、后端裝置及其定位方法
- 遙控裝置、通信裝置、可變裝置及照明裝置
- 透鏡裝置、攝像裝置、處理裝置和相機(jī)裝置
- 抖動(dòng)校正裝置、驅(qū)動(dòng)裝置、成像裝置、和電子裝置





