欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Js程序的調(diào)試方法及裝置的制造方法

文檔序號:9274641閱讀:327來源:國知局
Js程序的調(diào)試方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,具體而言,涉及一種JS程序的調(diào)試方法及裝置。
【背景技術(shù)】
[0002]在開發(fā)Node, js程序?qū)崿F(xiàn)HTTP應(yīng)用時,不管修改了程序的哪一部份代碼,都必須先終止當(dāng)前的Node, js進程,然后再重啟,這樣,修改的內(nèi)容才會奏效。這是因為:與PHP在沒有專門的優(yōu)化配置的情況下每次被引用時,系統(tǒng)都會重新讀取程序代碼并解析腳本文件不同,Node, js程序只有在第一次被引用時,系統(tǒng)才會讀取程序代碼并解析腳本文件,同時存儲解析結(jié)果,使得如果后續(xù)再引用該Node, js程序,則會直接訪問內(nèi)存,避免程序重復(fù)載入。
[0003]然而,Node, js的這種設(shè)計方案雖然有利于提高系統(tǒng)性能,但不利于查看修改效果和開發(fā)調(diào)試。因為:在開發(fā)過程中,用戶更希望修改程序后立即看到修改效果,而不是每次都要先終止進程再重啟,才能查看修改效果。也即,只要修改了 JS文件,如修改調(diào)試功能,或增加其他功能,就需要重新發(fā)布程序,具體地,每次修改都需要執(zhí)行以下兩步:control+c、node server.js0
[0004]在相關(guān)技術(shù)中,提供了 node-supervisor、PM2和node-dev等調(diào)試方案^然而,這些解決方案都需要在監(jiān)聽到JS文件被修改后,重啟Node, js進程,導(dǎo)致調(diào)試不便。
[0005]針對上述的問題,目前尚未提出有效的解決方案。

【發(fā)明內(nèi)容】

[0006]本發(fā)明實施例提供了一種JS程序的調(diào)試方法及裝置,以至少解決Node, js程序由于修改而導(dǎo)致調(diào)試不便的技術(shù)問題。
[0007]根據(jù)本發(fā)明實施例的一個方面,提供了一種JS程序的調(diào)試方法,包括:獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果;清除獲取的上述腳本文件解析結(jié)果;在需要調(diào)試程序時,再次加載上述待調(diào)試的JS程序;根據(jù)再次加載結(jié)果調(diào)試上述待調(diào)試的JS程序。
[0008]進一步地,在獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果之前,上述方法還包括:檢測上述待調(diào)試的JS程序中的部分或全部代碼是否已經(jīng)被修改,若已經(jīng)被修改,則執(zhí)行獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果的步驟。
[0009]進一步地,檢測上述待調(diào)試的JS程序中的部分或全部代碼是否已經(jīng)被修改包括:監(jiān)聽需要熱更新的JS文件是否發(fā)生更改;和/或檢測編輯器在保存文件時是否已觸發(fā)清除腳本文件解析結(jié)果的觸發(fā)機制。
[0010]進一步地,編輯器在保存文件時觸發(fā)清除腳本文件解析結(jié)果的觸發(fā)機制的手段包括:編輯器在保存文件時向上述待調(diào)試的JS程序?qū)?yīng)的進程發(fā)送觸發(fā)信號;和/或編輯器在保存文件時訪問指定的URL。
[0011]進一步地,在清除獲取的上述腳本文件解析結(jié)果的同時,上述方法還包括:釋放獲取的上述腳本文件的引用關(guān)系。
[0012]進一步地,在釋放獲取的上述腳本文件的引用關(guān)系之前,上述方法包括:檢測上述引用關(guān)系是否包含除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系,其中,若不包含,則執(zhí)行釋放獲取的上述腳本文件的引用關(guān)系的步驟。
[0013]進一步地,在檢測上述引用關(guān)系是否包含除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系之后,上述方法包括:若包含,則不執(zhí)行釋放獲取的上述腳本文件的引用關(guān)系的步驟;或者若包含,則進一步檢測被標(biāo)識了上述除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系的進程的休眠時間是否超出閾值,若已超出閾值,則執(zhí)行釋放獲取的上述腳本文件的引用關(guān)系的步驟,若未超出閾值,則不執(zhí)行釋放獲取的上述腳本文件的引用關(guān)系的步驟。
[0014]根據(jù)本發(fā)明實施例的另一方面,還提供了一種JS程序的調(diào)試裝置,包括:獲取單元,用于獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果;清除單元,用于清除獲取的上述腳本文件解析結(jié)果;加載單元,用于在需要調(diào)試程序時,再次加載上述待調(diào)試的JS程序;調(diào)試單元,用于根據(jù)再次加載結(jié)果調(diào)試上述待調(diào)試的JS程序。
[0015]進一步地,上述裝置還包括:第一檢測單元,用于在獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果之前,檢測上述待調(diào)試的JS程序中的部分或全部代碼是否已經(jīng)被修改,在已經(jīng)被修改時,執(zhí)行上述獲取單元獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果的功能。
[0016]進一步地,上述第一檢測單元包括:監(jiān)聽模塊,用于監(jiān)聽需要熱更新的JS文件是否發(fā)生更改;和/或檢測模塊,用于檢測編輯器在保存文件時是否已觸發(fā)清除腳本文件解析結(jié)果的觸發(fā)機制。
[0017]進一步地,上述裝置還包括觸發(fā)單元,上述觸發(fā)單元用于實現(xiàn)編輯器在保存文件時觸發(fā)清除腳本文件解析結(jié)果的觸發(fā)機制的目的,其中,上述觸發(fā)單元包括:發(fā)送信號觸發(fā)模塊,用于編輯器在保存文件時向上述待調(diào)試的JS程序?qū)?yīng)的進程發(fā)送觸發(fā)信號;和/或訪問URL觸發(fā)模塊,用于編輯器在保存文件時訪問指定的URL。
[0018]進一步地,上述裝置包括:釋放單元,用于在清除獲取的上述腳本文件解析結(jié)果的同時,釋放獲取的上述腳本文件的引用關(guān)系。
[0019]進一步地,上述裝置還包括:第二檢測單元,用于在釋放獲取的上述腳本文件的引用關(guān)系之前,檢測上述引用關(guān)系是否包含除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系,其中,在不包含時,執(zhí)行上述釋放單元釋放獲取的上述腳本文件的引用關(guān)系的功能。
[0020]進一步地,上述裝置包括:在檢測上述引用關(guān)系是否包含除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系之后,在包含時,不執(zhí)行上述釋放單元釋放獲取的上述腳本文件的引用關(guān)系的功能;或者在包含時,第二檢測單元,用于進一步檢測被標(biāo)識了上述除與上述待調(diào)試的JS程序?qū)?yīng)的進程的引用關(guān)系之外的引用關(guān)系的進程的休眠時間是否超出閾值,在已超出閾值時,執(zhí)行上述釋放單元釋放獲取的上述腳本文件的引用關(guān)系的步驟,在未超出閾值時,不執(zhí)行上述釋放單元釋放獲取的上述腳本文件的引用關(guān)系的步驟。
[0021]在本發(fā)明實施例中,采用及時清除在加載Node, js程序時緩存的腳本文件解析結(jié)果的方式,通過獲取已加載的待調(diào)試的JS程序的腳本文件解析結(jié)果;清除獲取的腳本文件解析結(jié)果;在需要調(diào)試程序時,再次加載待調(diào)試的JS程序;根據(jù)再次加載結(jié)果調(diào)試待調(diào)試的JS程序,達到了在修改程序后無需重啟進程即可進行調(diào)試的目的,從而實現(xiàn)了便于系統(tǒng)調(diào)試JS程序的技術(shù)效果,進而解決了 Node, js程序由于修改而導(dǎo)致調(diào)試不便的技術(shù)問題。
【附圖說明】
[0022]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0023]圖1是根據(jù)本發(fā)明實施例的一種可選的JS程序的調(diào)試方法的流程圖;以及
[0024]圖2是根據(jù)本發(fā)明實施例的一種可選的JS程序的調(diào)試裝置的示意圖。
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
渝中区| 太康县| 夏津县| 金门县| 广平县| 石河子市| 兴义市| 秦皇岛市| 东方市| 芮城县| 逊克县| 囊谦县| 怀化市| 旌德县| 宽城| 邓州市| 香格里拉县| 屏南县| 隆尧县| 兴海县| 扬中市| 五莲县| 泗洪县| 镶黄旗| 邯郸县| 砚山县| 武汉市| 资中县| 万州区| 赤峰市| 芒康县| 兴隆县| 贵南县| 清苑县| 浦江县| 松溪县| 怀仁县| 若羌县| 会同县| 图片| 新宁县|