本發(fā)明涉及計算機(jī)領(lǐng)域,具體而言,涉及一種頁面調(diào)試方法和裝置。
背景技術(shù):
目前,對瀏覽器頁面進(jìn)行調(diào)試時,相關(guān)技術(shù)通常需要安裝chrome插件,在chrome瀏覽器的調(diào)試框中進(jìn)行調(diào)試。具體地,相關(guān)技術(shù)在php中引用chromephp類,在調(diào)用調(diào)試方法時,會網(wǎng)瀏覽器的頭信息header中寫入調(diào)試內(nèi)容,在chrome插件中對其進(jìn)行解析,并將調(diào)試信息輸出至chrome的調(diào)試框中。
上述瀏覽器頁面的調(diào)試方法存在以下缺點:
(1)需要在瀏覽器中安裝chrome插件,且只能在chrome中進(jìn)行頁面調(diào)試,導(dǎo)致瀏覽器頁面的調(diào)試比較復(fù)雜,增加了調(diào)試成本。
(2)調(diào)試內(nèi)容需要寫入在瀏覽器頭信息header中,但是,header中的存儲能力受服務(wù)器最大header大小限制,導(dǎo)致調(diào)試內(nèi)容受到限制。
針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種頁面調(diào)試方法和裝置,以至少解決相關(guān)技術(shù)需要安裝chrome插件,在chrome中對瀏覽器頁面進(jìn)行頁面調(diào)試,導(dǎo)致頁面調(diào)試比較復(fù)雜的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種頁面調(diào)試方法,包括:接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;從緩存中獲取調(diào)試信息;以及在瀏覽器的調(diào)試框中輸出調(diào)試信息。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種頁面調(diào)試裝置,包括:接收單元,用于接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;調(diào)用單元,用于響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;獲取單元,用于從緩存中獲取調(diào)試信息;以及輸出單元,用于在瀏覽器的調(diào)試框中輸出調(diào)試信息。
在本發(fā)明實施例中,無需在瀏覽器中安裝第三方插件,只需在接收到瀏覽器目標(biāo)頁面的調(diào)試請求之后,在瀏覽器中響應(yīng)于該調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,且該調(diào)試信息存儲在瀏覽器的緩存中;然后通過從緩存中獲取該調(diào)試信息,并將其輸出在瀏覽器的調(diào)試框中,達(dá)到了無需安裝第三方插件亦可以對瀏覽器頁面進(jìn)行在線調(diào)試的目的,進(jìn)而解決了相關(guān)技術(shù)需要安裝chrome插件,在chrome中對瀏覽器頁面進(jìn)行頁面調(diào)試,導(dǎo)致頁面調(diào)試比較復(fù)雜的技術(shù)問題,從而實現(xiàn)了簡化瀏覽器頁面調(diào)試操作,提高瀏覽器頁面調(diào)試效率的技術(shù)效果。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的頁面調(diào)試方法的硬件環(huán)境的示意圖;
圖2是根據(jù)本發(fā)明實施例的一種可選的頁面調(diào)試方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的判斷調(diào)試請求是同步請求還是異步請求的代碼截圖;
圖4是根據(jù)本發(fā)明實施例的object轉(zhuǎn)array方法的代碼截圖;
圖5是根據(jù)本發(fā)明實施例的調(diào)試請求為異步請求的情況下調(diào)試信息輸出至調(diào)試框的過程的示意圖;
圖6是根據(jù)本發(fā)明優(yōu)選實施例的web控制臺顯示調(diào)試信息的示意圖;
圖7是根據(jù)本發(fā)明優(yōu)選實施例的快速定位性能消耗最大的程序模塊的示意圖;
圖8是根據(jù)本發(fā)明優(yōu)選實施例的php代碼在web控制臺中輸出調(diào)試過程的示意圖;
圖9是根據(jù)本發(fā)明實施例的一種可選的頁面調(diào)試裝置的示意圖;以及
圖10是根據(jù)本發(fā)明實施例的一種終端的結(jié)構(gòu)框圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
首先,在對本發(fā)明實施例進(jìn)行描述的過程中出現(xiàn)的部分名詞或者術(shù)語適用于如下解釋:
biny:是一種php輕量級web開發(fā)框架。
web控制臺:瀏覽器開啟開發(fā)者模式后出現(xiàn)的調(diào)試框。
同步/異步:數(shù)據(jù)獲取方式,同步是同頁面一同生成一同下發(fā)的方式,異步是頁面完成渲染后在頁面中再次請求的行為方式。
ajax:前端web最常用的一種異步數(shù)據(jù)獲取方法。
header:瀏覽器頭信息,包含html協(xié)議,長度,編碼格式等信息。
實施例1
根據(jù)本發(fā)明實施例,提供了一種頁面調(diào)試方法的方法實施例。
可選地,在本實施例中,上述頁面調(diào)試方法可以應(yīng)用于如圖1所示的由服務(wù)器102和終端104所構(gòu)成的硬件環(huán)境中。如圖1所示,服務(wù)器102通過網(wǎng)絡(luò)與終端104進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端104并不限定于pc、手機(jī)、平板電腦等。本發(fā)明實施例的頁面調(diào)試方法可以由服務(wù)器102來執(zhí)行,也可以由終端104來執(zhí)行,還可以是由服務(wù)器102和終端104共同執(zhí)行。其中,終端104執(zhí)行本發(fā)明實施例的頁面調(diào)試方法也可以是由安裝在其上的客戶端來執(zhí)行。此處以服務(wù)器102執(zhí)行該頁面調(diào)試方法為例對該頁面調(diào)試方法進(jìn)行具體說明,其中,服務(wù)器102可以為用于維護(hù)和支持本發(fā)明實施例中所涉及到的瀏覽器的服務(wù)器。
圖2是根據(jù)本發(fā)明實施例的一種可選的頁面調(diào)試方法的流程圖,如圖2所示,該方法可以包括以下步驟:
步驟s202,接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;
步驟s204,響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;
步驟s206,從緩存中獲取調(diào)試信息;
步驟s208,在瀏覽器的調(diào)試框中輸出調(diào)試信息。
通過上述步驟s202至步驟s208,通過在接收到瀏覽器目標(biāo)頁面的調(diào)試請求之后,在瀏覽器中響應(yīng)于該調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,且該調(diào)試信息存儲在瀏覽器的緩存中;然后通過從緩存中獲取該調(diào)試信息,并將其輸出在瀏覽器的調(diào)試框中,達(dá)到了無需安裝第三方插件亦可以對瀏覽器頁面進(jìn)行在線調(diào)試的目的,進(jìn)而解決了相關(guān)技術(shù)需要安裝chrome插件,在chrome中對瀏覽器頁面進(jìn)行頁面調(diào)試,導(dǎo)致頁面調(diào)試比較復(fù)雜的技術(shù)問題,從而實現(xiàn)了簡化瀏覽器頁面調(diào)試操作,提高瀏覽器頁面調(diào)試效率的技術(shù)效果。
在步驟s202提供的技術(shù)方案中,本發(fā)明實施例對瀏覽器的類型不做具體限定,例如瀏覽器可以是qq瀏覽器,也可以是ie瀏覽器等。本發(fā)明實施例中的目標(biāo)頁面可以是瀏覽器運行過程中的任意頁面,其中,目標(biāo)頁面中所顯示的數(shù)據(jù)內(nèi)容可以包括文本、圖片、音頻或者視頻等。對瀏覽器目標(biāo)頁面的調(diào)試信息可以用于請求對該目標(biāo)頁面進(jìn)行調(diào)試,需要說明的是,本發(fā)明實施例中對目標(biāo)頁面所進(jìn)行的調(diào)試為在線調(diào)試,也就是說在目頁面的生成過程中對該目標(biāo)頁面進(jìn)行調(diào)試,該在線調(diào)試不會影響目標(biāo)頁面的結(jié)構(gòu),也不會對用戶側(cè)產(chǎn)生任何影響。還需要說明的是,對目標(biāo)頁面所進(jìn)行的調(diào)試內(nèi)容可以根據(jù)實際需求進(jìn)行調(diào)整,此處并不做具體限定,例如,對目標(biāo)頁面可以進(jìn)行普通調(diào)試、異常調(diào)試、時間或內(nèi)存調(diào)試等。還需要說明的是,調(diào)試請求中可以包括但并不限于以下信息:目標(biāo)頁面的標(biāo)識信息、調(diào)試位置、調(diào)試內(nèi)容、調(diào)試內(nèi)容的級別等信息等。
在實際應(yīng)用場景中,瀏覽器啟動之后,目標(biāo)頁面的生成請求可以觸發(fā)生成該目標(biāo)頁面的調(diào)試請求,也就是說,在請求生成目標(biāo)頁面時可以觸發(fā)對該目標(biāo)頁面進(jìn)行調(diào)試,以實現(xiàn)在生成目標(biāo)頁面的過程中完成對目標(biāo)頁面的調(diào)試。需要說明的是,目標(biāo)頁面的生成請求可以由用戶在瀏覽器中所執(zhí)行的觸控操作觸發(fā)生成,其中,用戶所執(zhí)行的觸控操作可以包括但并不限于輸入url地址、點擊鏈接等。在服務(wù)器接收到瀏覽器目標(biāo)頁面的生成請求之后,該生成請求可以同時出發(fā)生成該目標(biāo)頁面的調(diào)試請求,以使得服務(wù)器可以同時接收到對該目標(biāo)頁面的調(diào)試請求。
在步驟s204提供的技術(shù)方案中,在接收到瀏覽器目標(biāo)頁面的調(diào)試請求之后,服務(wù)器可以對該調(diào)試請求進(jìn)行響應(yīng),具體響應(yīng)過程可以包括:在目標(biāo)頁面的生成過程中調(diào)用調(diào)試方法,通過執(zhí)行調(diào)試方法對目標(biāo)頁面進(jìn)行調(diào)試。需要說明的是,在目標(biāo)頁面生成過程中所調(diào)用的調(diào)試方法本發(fā)明實施例并不做具體限定,調(diào)試方法可以根據(jù)實際需求設(shè)定,例如,調(diào)試方法可以為txlogger方法,具體可以包括:普通調(diào)試txlogger::info($log)、告警內(nèi)容txlogger::warn($log)、異常調(diào)試txlogger::error($log)、輸出當(dāng)前毫秒時間戳txlogger::time()、輸出當(dāng)前內(nèi)容消耗txlogger::memory()等。還需要說明的是,目標(biāo)頁面的生成過程也即目標(biāo)程序代碼的執(zhí)行過程,其中,目標(biāo)程序代碼用于生成目標(biāo)頁面。在本發(fā)明實施例中可以在目標(biāo)程序代碼的任意位置調(diào)用上述任意一種或者幾種調(diào)試方法,其中,調(diào)試方法的調(diào)用位置可以根據(jù)實際調(diào)試需求進(jìn)行設(shè)定。
通過調(diào)用調(diào)試方法可以實現(xiàn)對目標(biāo)頁面進(jìn)行調(diào)試,調(diào)試方法調(diào)用之后可以得到目標(biāo)頁面的調(diào)試信息,其中,調(diào)試信息可以用于指示調(diào)用調(diào)試方法后得到的調(diào)試結(jié)果。需要說明的是,調(diào)試信息可以與所調(diào)用的調(diào)試方法相對應(yīng),且本發(fā)明實施例中的調(diào)試方法可以是一個,也可以是多個。在目標(biāo)頁面的生成過程中調(diào)用多個調(diào)試方法時,調(diào)試信息中可以包括這些調(diào)試方法所對應(yīng)的調(diào)試結(jié)果,且這些調(diào)試結(jié)果可以按照調(diào)試方法的執(zhí)行先后順序進(jìn)行排序。例如,當(dāng)調(diào)試方法中包括:txlogger::error($log)、txlogger::time()、txlogger::memory()時,且上述三種調(diào)試方法的調(diào)用順序依次為txlogger::error($log)、txlogger::time()、txlogger::memory(),則調(diào)試信息中可以依次包括:txlogger::error($log)的結(jié)果(是否異常)、txlogger::time()的結(jié)果(當(dāng)前毫秒時間戳)、txlogger::memory()的結(jié)果(當(dāng)前內(nèi)容的內(nèi)存消耗)。還需要說明的是,調(diào)試信息中還可以包括其他信息,例如,調(diào)用調(diào)試方法的時間、目標(biāo)頁面的標(biāo)識信息、調(diào)試方法的具體調(diào)試內(nèi)容、調(diào)試方法的類型級別等。
作為一種可選的實施例,在目標(biāo)頁面的生成過程中通過調(diào)用調(diào)試方法所得到的調(diào)試信息可以存儲在瀏覽器的緩存中,此處需要說明的是,瀏覽器的緩存中可以存儲有多個目標(biāo)頁面對應(yīng)的調(diào)試信息,這些調(diào)試信息可以用目標(biāo)頁面的標(biāo)識信息加以區(qū)分,且每個目標(biāo)頁面的調(diào)試信息可以包括多個記錄,每個記錄對應(yīng)一種調(diào)試方法,也即調(diào)試信息中可以包括同一個目標(biāo)頁面調(diào)用不同的調(diào)試方法后所得到的調(diào)試結(jié)果記錄,這些調(diào)試結(jié)果記錄可以按照調(diào)試方法調(diào)用先后順序排序。本發(fā)明實施例將目標(biāo)頁面的調(diào)試信息存儲在瀏覽器緩存中,且用目標(biāo)頁面的標(biāo)識信息進(jìn)行標(biāo)記,能夠?qū)崿F(xiàn)便于從緩存中快速準(zhǔn)確地獲取該目標(biāo)頁面對應(yīng)的調(diào)試信息的目的。
在步驟s206提供的技術(shù)方案中,目標(biāo)頁面的生成過程也即目標(biāo)程序代碼執(zhí)行過程,目標(biāo)頁面中的數(shù)據(jù)內(nèi)容也即目標(biāo)程序代碼所返回的數(shù)據(jù)內(nèi)容。在目標(biāo)程序代碼返回數(shù)據(jù)內(nèi)容時可以生成目標(biāo)類對象,該目標(biāo)類對象可以為txresponse對象,其中,該txresponse對象可以用于從瀏覽器緩存中獲取存儲的調(diào)試信息。在生成該txresponse對象之后,利用該txresponse對象可以從瀏覽器緩存中獲取其中存儲的調(diào)試信息。此處需要說明的是,調(diào)試信息的獲取方式可以為以下方式中的任意一種:第一種,從瀏覽器緩存中獲取存儲的所有的調(diào)試信息,其中,包括目標(biāo)頁面的調(diào)試信息;然后利用目標(biāo)頁面的標(biāo)識信息從所有的調(diào)試信息中篩選出該目標(biāo)頁面的調(diào)試信息。第二種,利用目標(biāo)頁面的標(biāo)識信息從瀏覽器緩存中查找該目標(biāo)頁面對應(yīng)的調(diào)試信息,然后從緩存中獲取所查找到的目標(biāo)頁面對應(yīng)的調(diào)試信息。還需要說明的是,在目標(biāo)頁面對應(yīng)的調(diào)試信息包括多種調(diào)試方法對應(yīng)的調(diào)試結(jié)果記錄的情況下,從瀏覽器緩存中所獲取到的調(diào)試信息還應(yīng)該按照調(diào)試方法調(diào)用的先后順序進(jìn)行排序,也即從瀏覽器緩存中獲取到的調(diào)試信息應(yīng)該與瀏覽器緩存中調(diào)試信息的存儲順序一致。
在步驟s208提供的技術(shù)方案中,在從瀏覽器緩存中獲取到調(diào)試信息之后,本發(fā)明實施例可以將獲取到的調(diào)試信息在瀏覽器的調(diào)試框中進(jìn)行輸出顯示,完成對目標(biāo)頁面的調(diào)試。在瀏覽器調(diào)試框中輸出顯示調(diào)試信息可以便于調(diào)試人員可以直觀清楚地根據(jù)調(diào)試框中的調(diào)試信息對目標(biāo)頁面進(jìn)行相應(yīng)調(diào)試。需要說明的是,將從瀏覽器緩存中獲取到的調(diào)試信息在瀏覽器調(diào)試框中進(jìn)行輸出所采取的方法與目標(biāo)頁面的調(diào)試請求的類型有關(guān),其中,目標(biāo)頁面的調(diào)試請求的類型可以包括同步請求和異步請求,同步和異步為兩種數(shù)據(jù)獲取方式,所謂同步也即頁面一同生成數(shù)據(jù)一同下發(fā)的方式,所謂異步也即頁面完成渲染后再次進(jìn)行數(shù)據(jù)請求的行為方法。因此,在從瀏覽器緩存中獲取到調(diào)試信息之后,且在瀏覽器的調(diào)試框中輸出調(diào)試信息之前,本發(fā)明實施例還可以判斷調(diào)試請求的類型是同步請求還是異步請求,然后根據(jù)調(diào)試請求的類型采取相應(yīng)方法將調(diào)試信息輸出至瀏覽器調(diào)試框中??蛇x地,本發(fā)明實施例可以使用php$_server中的http_x_requested_with參數(shù)來判斷調(diào)試請求是同步請求還是異步請求,具體判斷過程可以如圖3所示的代碼截圖所示。需要說明的是,本發(fā)明實施例還可以采用其他方式判斷觸發(fā)請求是同步請求還是異步請求,此處不再一一舉例說明。
作為一種可選的實施例,步驟s208根據(jù)調(diào)試請求的類型在調(diào)試框中輸出調(diào)試信息可以包括以下兩種情況:
第一種情況,在調(diào)試請求為同步請求的情況下,調(diào)用腳本語言直接將調(diào)試信息輸出至調(diào)試框中。
需要說明的是,在判斷出調(diào)試請求為同步請求的情況下,本發(fā)明實施例可以通過注冊txresponse的析構(gòu)函數(shù),在目標(biāo)程序代碼執(zhí)行之后,通過調(diào)用該析構(gòu)函數(shù)在目標(biāo)頁面中輸出js方法,直接將調(diào)試信息輸出至調(diào)試框中。
作為一種可選的實施例,在調(diào)試請求為同步請求的情況下,調(diào)用腳本語言直接將調(diào)試信息輸出至調(diào)試框中需要檢測調(diào)試信息的類型,其中,調(diào)試信息的類型可以包括但并不限于字符串型、數(shù)組型、對象型。該可選實施例根據(jù)調(diào)試信息的類型確定在調(diào)試框中輸出的內(nèi)容可以包括以下幾種情況:
(1)在調(diào)試信息為字符串型的情況下,直接將字符串型的調(diào)試信息輸出至調(diào)試框中。
如果調(diào)試信息為字符串型,該可選實施例可以直接在js中調(diào)用方法console.{級別}(名稱=>內(nèi)容)將調(diào)試信息輸出至調(diào)試框中。
(2)在調(diào)試信息為數(shù)組型的情況下,將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中。
如果調(diào)試信息為數(shù)組型,該可選實施例可以首先將數(shù)組型調(diào)試信息通過json_encode方法轉(zhuǎn)換成調(diào)試框所能夠識別的類型,然后再在js中調(diào)用控制臺方法console.{級別}(名稱=>內(nèi)容)將其輸出至調(diào)試框中。
(3)在調(diào)試信息為對象型的情況下,將對象型的調(diào)試信息轉(zhuǎn)換成數(shù)組型的調(diào)試信息;將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中。
如果調(diào)試信息為對象型,該可選實施例可以調(diào)用對象的__tologger()方法將調(diào)試信息輸出至調(diào)試框中。如果沒有該__tologger()方法,該可選實施例可以通過object轉(zhuǎn)array方法將對象型調(diào)試信息轉(zhuǎn)換為數(shù)組型調(diào)試信息,object轉(zhuǎn)array方法利用反射類獲取該類中公共、私有對象,通過構(gòu)建數(shù)組的方式,將類中的對象傳入該數(shù)組中,具體轉(zhuǎn)換過程可以如圖4所示的代碼截圖所示。然后再通過json_encode方法將數(shù)組型調(diào)試信息轉(zhuǎn)換成調(diào)試框所能夠識別的類型,在js中調(diào)用控制臺方法console.{級別}(名稱=>內(nèi)容)將其輸出至調(diào)試框中。
第二種情況,在調(diào)試請求為異步請求的情況下,構(gòu)建json對象,其中,json對象中存儲有調(diào)試信息;從json對象中解析得到調(diào)試信息,并將調(diào)試信息輸出至調(diào)試框中。
需要說明的是,在判斷出調(diào)試請求為異步請求的情況下,本發(fā)明實施例可以構(gòu)建json對象,并在該json對象中添加log對象,其中,log對象中存儲有調(diào)試信息,然后通過對json對象進(jìn)行解析處理將其中的調(diào)試信息輸出至調(diào)試框中。
在實際應(yīng)用場景中,在調(diào)試請求為異步請求的情況下,該可選實施例可以在直譯式腳本語言(javascript,簡稱js)中注冊ajax返回事件,其中,ajax是asynchronousjavasriptandxml的簡稱,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),將日志log內(nèi)容輸出至調(diào)試框中。如圖5所示,一個異步ajax請求訪問php服務(wù)器時,可以通過txresponse方法會構(gòu)建出一個包含調(diào)試數(shù)據(jù)的json對象,其中,json是javascriptobjectnotation的簡稱,是一種輕量級的數(shù)據(jù)交換格式。該可選實施例可以在程序中注冊了ajaxsuccess方法,在成功獲取到j(luò)son返回后,會對其進(jìn)行數(shù)據(jù)解析,將日志log分離出來,逐行執(zhí)行js方法console.{級別}(名稱=>內(nèi)容),之后將log對象刪除,將原生數(shù)據(jù)data返回交還給網(wǎng)頁web中的ajax響應(yīng)程序,完成整個日志log輸出。
需要說明的是,該可選實施例可以在對目標(biāo)頁面進(jìn)行調(diào)試的過程中,兼容同步、異步頁面,使用同一個調(diào)用邏輯,就可以自動適配同步、異步兩種情況,可以通過使用上述兩種不同的返回方式實現(xiàn)相同的將調(diào)試信息輸出至瀏覽器調(diào)試框中的效果,在同步情況下,在頁面渲染層底部使用js直接輸出調(diào)試信息至瀏覽器調(diào)試框中,在異步情況下,在js中注冊ajsx返回事件,輸出log內(nèi)容至瀏覽器調(diào)試框中。
本發(fā)明還提供了一種優(yōu)選實施例,該優(yōu)選實施例在服務(wù)器中設(shè)計了一套php輕量級web開發(fā)框架,biny框架,并在該biny框架中提供了一種基于原生php的web調(diào)試方法。該方法可以在無需任何第三方插件的情況下,使用同一個調(diào)用邏輯,自動識別同步、異步邏輯,采用不同的返回方式實現(xiàn)同一個在web控制臺輸出調(diào)試信息的效果,其中,web控制臺也即瀏覽器的調(diào)試框。同步邏輯是指,在頁面渲染層底部使用js直接輸出調(diào)試信息至web控制臺;異步邏輯是指,在js中注冊ajax返回事件中,輸出log內(nèi)容至web控制臺。
該發(fā)明提供的頁面調(diào)試方法,可在web控制臺中看到對應(yīng)調(diào)試信息,如圖6所示,在web控制臺中可以看到對瀏覽器頁面進(jìn)行調(diào)試后得到的調(diào)試信息。另外,該發(fā)明中可以提供時間/內(nèi)存等調(diào)試方法,可以快速定位性能消耗最大的程序模塊,從而方便開發(fā)及時修改優(yōu)化,例如如圖7所示的調(diào)試信息截圖。
本發(fā)明可以集成在biny框架中,是一套完整的php在線調(diào)試的解決方案。不管是同步數(shù)據(jù)還是異步數(shù)據(jù),用戶側(cè)都可以在web控制臺中看到自己輸出的日志。而且不像服務(wù)器日志,在大量用戶訪問的時候難以定位該網(wǎng)頁請求的單獨日志。本發(fā)明可以完整的輸出當(dāng)前頁面的調(diào)試日志且只有當(dāng)前頁面的日志,不會出現(xiàn)混亂的現(xiàn)象。
另外,本發(fā)明的調(diào)試不會影響頁面結(jié)構(gòu),即使線上調(diào)試,也不會對用戶側(cè)產(chǎn)生任何影響。
本發(fā)明中的調(diào)用方法可以如下所示:
txlogger::info($log)//普通調(diào)試
txlogger::warn($log)//警告內(nèi)容
txlogger::error($log)//異常調(diào)試
txlogger::time()//輸出當(dāng)前毫秒時間戳
txlogger::memory()//輸出當(dāng)前內(nèi)容消耗
圖8是根據(jù)本發(fā)明優(yōu)選實施例的php代碼在web控制臺中輸出調(diào)試過程的示意圖,如圖8所示,該過程可以描述為:
首先,程序執(zhí)行過程中可以在程序的任意位置調(diào)用txlogger方法,并將調(diào)試的日志內(nèi)容存放在瀏覽器的日志緩存中。需要說明的是,時間,內(nèi)存等數(shù)據(jù)可以是根據(jù)日志緩存中存儲的日志數(shù)據(jù)計算后得到的結(jié)果。
其次,程序返回內(nèi)容時會生成txresponse對象,在生成txresponse對象后,會從日志緩存中讀取之前所有存入的日志內(nèi)容。需要說明的是,讀取的日志內(nèi)容與存入的日志內(nèi)容的前后順序不變。
再次,判斷是同步請求還是異步請求,具體判斷過程可以使用php$_server中的http_x_requested_with參數(shù)來判斷是同步請求或者異步請求,具體判斷過程可以如圖3所示的代碼截圖。
若是同步請求,則注冊txresponse的析構(gòu)函數(shù),程序完成時,在頁面中輸出js方法,逐條日志判斷,輸出內(nèi)容視日志類型而定,具體地:
若日志類型為字符串型,則直接在js中調(diào)用控制臺方法console.{級別}(名稱=>內(nèi)容)。
若日志類型為數(shù)組型,則將數(shù)組內(nèi)容通過json_encode方法轉(zhuǎn)換成控制臺認(rèn)識的object類型,然后在通過console.{級別}(名稱=>內(nèi)容)方法輸出。
若日志類型為對象型,則調(diào)用對象的__tologger()方法,若沒有__tologger()方法,則通過object轉(zhuǎn)array方法轉(zhuǎn)換,然后按照“數(shù)組型”的處理方式輸出該數(shù)組。其中,object轉(zhuǎn)array方法可以利用反射類獲取該類中公共,私有對象,通過構(gòu)建數(shù)組的方式,將類中的對象傳入該數(shù)組中,具體轉(zhuǎn)換過程可以如圖4所示。
若是異步請求,則會在返回json對象中添加log對象,將日志內(nèi)容添加進(jìn)log對象中,交給biny.js處理,并輸出日志至web控制臺中。如圖5所示,一個異步ajax請求訪問phpserver,通過txresponse方法會構(gòu)建出一個包含調(diào)試數(shù)據(jù)的json對象,而biny.js則在程序中注冊了ajaxsuccess方法,在成功獲取了json返回后,會先一步進(jìn)行數(shù)據(jù)解析,將log分離出來,逐行執(zhí)行js方法console.{級別}(名稱=>內(nèi)容),之后將log對象刪除,將原生data返回數(shù)據(jù)交還給web中的ajax響應(yīng)程序,完成整個log輸出的工作。
最后,web控制臺獲取到j(luò)s日志指令后即在web控制臺中輸出相應(yīng)數(shù)據(jù),即按照瀏覽器的自身邏輯輸出相應(yīng)數(shù)據(jù)。
采用本發(fā)明上述實施例,可以在不破壞頁面結(jié)構(gòu)的情況下,方便、快速地調(diào)試php程序,并且兼容同步、異步兩種情況,完美的實現(xiàn)了基于php的頁面在線調(diào)試功能。
作為一個可選地實施例,日志內(nèi)容可以存放在header中進(jìn)行傳遞,這樣連頁面body中也不會出現(xiàn)調(diào)試信息,全部交由biny.js中處理。采用該實施例,日志內(nèi)容的傳遞就會受限于header的大小,而body本身是沒有大小限制的。
本發(fā)明提供的一種php代碼在web控制臺中輸出調(diào)試的方法,無需第三方插件,便可以完成調(diào)試過程,并且本發(fā)明提供的調(diào)試的方法,可以在任何支持開發(fā)者模式的瀏覽器中運行,不受header大小限制,占用body大小不受限制。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
實施例2
根據(jù)本發(fā)明實施例,還提供了一種用于實施上述頁面調(diào)試方法的頁面調(diào)試裝置。圖9是根據(jù)本發(fā)明實施例的一種可選的頁面調(diào)試裝置的示意圖,如圖9所示,該裝置可以包括:
接收單元92,用于接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;調(diào)用單元94,用于響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;獲取單元96,用于從緩存中獲取調(diào)試信息;以及輸出單元98,用于在瀏覽器的調(diào)試框中輸出調(diào)試信息。
需要說明的是,該實施例中的接收單元92可以用于執(zhí)行本申請實施例1中的步驟s202,該實施例中的調(diào)用單元94可以用于執(zhí)行本申請實施例1中的步驟s204,該實施例中的獲取單元96可以用于執(zhí)行本申請實施例1中的步驟s206,該實施例中的輸出單元98可以用于執(zhí)行本申請實施例1中的步驟s208。
此處需要說明的是,上述模塊與對應(yīng)的步驟所實現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn)。
作為一種可選的實施例,獲取單元96可以包括:生成模塊,用于生成目標(biāo)類對象,其中,目標(biāo)類對象用于從緩存中獲取調(diào)試信息;獲取模塊,用于利用目標(biāo)類對象從緩存中獲取調(diào)試信息。
作為一種可選的實施例,該頁面調(diào)試裝置還可以包括:判斷單元,用于在從緩存中獲取調(diào)試信息之后,判斷調(diào)試請求的類型,其中,調(diào)試請求的類型包括同步請求和異步請求。相應(yīng)地,輸出單元98可以包括:輸出模塊,用于根據(jù)調(diào)試請求的類型在調(diào)試框中輸出調(diào)試信息。
作為一種可選的實施例,輸出模塊98可以包括:第一輸出子模塊,用于在調(diào)試請求為同步請求的情況下,調(diào)用腳本語言直接將調(diào)試信息輸出至調(diào)試框中;第二輸出子模塊,用于在調(diào)試請求為異步請求的情況下,構(gòu)建json對象,其中,json對象中存儲有調(diào)試信息;從json對象中解析得到調(diào)試信息,并將調(diào)試信息輸出至調(diào)試框中。
作為一種可選的實施例,第一輸出子模塊可以包括:檢測子模塊,用于檢測調(diào)試信息的類型;確定子模塊,用于根據(jù)調(diào)試信息的類型確定在調(diào)試框中輸出的內(nèi)容。
作為一種可選的實施例,調(diào)試信息的類型可以包括字符串型、數(shù)組型、對象型,其中,確定子模塊可以包括:第三輸出子模塊,用于在調(diào)試信息為字符串型的情況下,直接將字符串型的調(diào)試信息輸出至調(diào)試框中;第四輸出子模塊,用于在調(diào)試信息為數(shù)組型的情況下,將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中;第五輸出子模塊,用于在調(diào)試信息為對象型的情況下,將對象型的調(diào)試信息轉(zhuǎn)換成數(shù)組型的調(diào)試信息;將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中。
作為一種可選的實施例,第二輸出子模塊可以包括:解析子模塊,用于從json對象中解析出log對象,其中,json對象中添加有l(wèi)og對象,log對象中存儲有調(diào)試信息;第六輸出子模塊,用于調(diào)用腳本語言將log對象中的調(diào)試信息輸出至調(diào)試框中。
此處需要說明的是,上述模塊與對應(yīng)的步驟所實現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn)。
通過上述模塊,可以達(dá)到無需安裝第三方插件亦可以對瀏覽器頁面進(jìn)行在線調(diào)試的目的,進(jìn)而解決了相關(guān)技術(shù)需要安裝chrome插件,在chrome中對瀏覽器頁面進(jìn)行頁面調(diào)試,導(dǎo)致頁面調(diào)試比較復(fù)雜的技術(shù)問題,從而實現(xiàn)了簡化瀏覽器頁面調(diào)試操作,提高瀏覽器頁面調(diào)試效率的技術(shù)效果。
實施例3
根據(jù)本發(fā)明實施例,還提供了一種用于實施上述頁面調(diào)試方法的終端。
圖10是根據(jù)本發(fā)明實施例的一種終端的結(jié)構(gòu)框圖,如圖10所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器201、存儲器203、以及傳輸裝置205,如圖10所示,該終端還可以包括輸入輸出設(shè)備207。
其中,存儲器203可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的頁面調(diào)試方法和裝置對應(yīng)的程序指令/模塊,處理器201通過運行存儲在存儲器203內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的頁面調(diào)試方法。存儲器203可包括高速隨機(jī)存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器203可進(jìn)一步包括相對于處理器201遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
上述的傳輸裝置205用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個實例中,傳輸裝置205包括一個網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個實例中,傳輸裝置205為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
其中,具體地,存儲器203用于存儲應(yīng)用程序。
處理器201可以調(diào)用存儲器203存儲的應(yīng)用程序,以執(zhí)行下述步驟:接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;從緩存中獲取調(diào)試信息;以及在瀏覽器的調(diào)試框中輸出調(diào)試信息。
處理器201還用于執(zhí)行下述步驟:生成目標(biāo)類對象,其中,目標(biāo)類對象用于從緩存中獲取調(diào)試信息;利用目標(biāo)類對象從緩存中獲取調(diào)試信息。
處理器201還用于執(zhí)行下述步驟:在從緩存中獲取調(diào)試信息之后,判斷調(diào)試請求的類型,其中,調(diào)試請求的類型包括同步請求和異步請求;根據(jù)調(diào)試請求的類型在調(diào)試框中輸出調(diào)試信息。
處理器201還用于執(zhí)行下述步驟:在調(diào)試請求為同步請求的情況下,調(diào)用腳本語言直接將調(diào)試信息輸出至調(diào)試框中;在調(diào)試請求為異步請求的情況下,構(gòu)建json對象,其中,json對象中存儲有調(diào)試信息;從json對象中解析得到調(diào)試信息,并將調(diào)試信息輸出至調(diào)試框中。
處理器201還用于執(zhí)行下述步驟:檢測調(diào)試信息的類型;根據(jù)調(diào)試信息的類型確定在調(diào)試框中輸出的內(nèi)容。
處理器201還用于執(zhí)行下述步驟:在調(diào)試信息為字符串型的情況下,直接將字符串型的調(diào)試信息輸出至調(diào)試框中;在調(diào)試信息為數(shù)組型的情況下,將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中;在調(diào)試信息為對象型的情況下,將對象型的調(diào)試信息轉(zhuǎn)換成數(shù)組型的調(diào)試信息;將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中。
處理器201還用于執(zhí)行下述步驟:從json對象中解析出log對象,其中,json對象中添加有l(wèi)og對象,log對象中存儲有調(diào)試信息;調(diào)用腳本語言將log對象中的調(diào)試信息輸出至調(diào)試框中。
采用本發(fā)明實施例,提供了一種頁面調(diào)試的方案。通過在接收到瀏覽器目標(biāo)頁面的調(diào)試請求之后,在瀏覽器中響應(yīng)于該調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,且該調(diào)試信息存儲在瀏覽器的緩存中;然后通過從緩存中獲取該調(diào)試信息,并將其輸出在瀏覽器的調(diào)試框中,達(dá)到了無需安裝第三方插件亦可以對瀏覽器頁面進(jìn)行在線調(diào)試的目的,進(jìn)而解決了相關(guān)技術(shù)需要安裝chrome插件,在chrome中對瀏覽器頁面進(jìn)行頁面調(diào)試,導(dǎo)致頁面調(diào)試比較復(fù)雜的技術(shù)問題,從而實現(xiàn)了簡化瀏覽器頁面調(diào)試操作,提高瀏覽器頁面調(diào)試效率的技術(shù)效果。
可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解,圖10所示的結(jié)構(gòu)僅為示意,終端可以是智能手機(jī)(如android手機(jī)、ios手機(jī)等)、平板電腦、掌上電腦以及移動互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖10其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,終端還可包括比圖10中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖10所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機(jī)存取器(randomaccessmemory,ram)、磁盤或光盤等。
實施例4
本發(fā)明的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以用于執(zhí)行頁面調(diào)試方法的程序代碼。
可選地,在本實施例中,上述存儲介質(zhì)可以位于上述實施例所示的網(wǎng)絡(luò)中的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備上。
可選地,在本實施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
s1,接收瀏覽器目標(biāo)頁面的調(diào)試請求,其中,調(diào)試請求用于對目標(biāo)頁面進(jìn)行調(diào)試;
s2,響應(yīng)于調(diào)試請求在生成目標(biāo)頁面過程中調(diào)用調(diào)試方法,得到調(diào)試信息,其中,調(diào)試信息存儲在瀏覽器的緩存中;
s3,從緩存中獲取調(diào)試信息;
s4,在瀏覽器的調(diào)試框中輸出調(diào)試信息。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:生成目標(biāo)類對象,其中,目標(biāo)類對象用于從緩存中獲取調(diào)試信息;利用目標(biāo)類對象從緩存中獲取調(diào)試信息。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:在從緩存中獲取調(diào)試信息之后,判斷調(diào)試請求的類型,其中,調(diào)試請求的類型包括同步請求和異步請求;根據(jù)調(diào)試請求的類型在調(diào)試框中輸出調(diào)試信息。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:在調(diào)試請求為同步請求的情況下,調(diào)用腳本語言直接將調(diào)試信息輸出至調(diào)試框中;在調(diào)試請求為異步請求的情況下,構(gòu)建json對象,其中,json對象中存儲有調(diào)試信息;從json對象中解析得到調(diào)試信息,并將調(diào)試信息輸出至調(diào)試框中。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:檢測調(diào)試信息的類型;根據(jù)調(diào)試信息的類型確定在調(diào)試框中輸出的內(nèi)容。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:在調(diào)試信息為字符串型的情況下,直接將字符串型的調(diào)試信息輸出至調(diào)試框中;在調(diào)試信息為數(shù)組型的情況下,將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中;在調(diào)試信息為對象型的情況下,將對象型的調(diào)試信息轉(zhuǎn)換成數(shù)組型的調(diào)試信息;將數(shù)組型的調(diào)試信息轉(zhuǎn)換成調(diào)試框所識別類型的調(diào)試信息;將調(diào)試框所識別類型的調(diào)試信息輸出至調(diào)試框中。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:從json對象中解析出log對象,其中,json對象中添加有l(wèi)og對象,log對象中存儲有調(diào)試信息;調(diào)用腳本語言將log對象中的調(diào)試信息輸出至調(diào)試框中。
可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。
可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在上述計算機(jī)可讀取的存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在存儲介質(zhì)中,包括若干指令用以使得一臺或多臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。