專利名稱:網(wǎng)頁腳本語言的執(zhí)行方法及裝置的制作方法
網(wǎng)頁腳本語言的執(zhí)行方法及裝置
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別是涉及一種網(wǎng)頁腳本語言的執(zhí)行方法及裝置。背景技術(shù):
目前,Web應(yīng)用程序的普及十分迅速,并在瀏覽器等客戶端中通過網(wǎng)頁腳本語言實(shí)現(xiàn)了 Web應(yīng)用程序的各種動(dòng)態(tài)展現(xiàn)功能。在網(wǎng)頁腳本語言的執(zhí)行過程中需要暫停的狀況時(shí)有發(fā)生,例如,在數(shù)據(jù)量比較大的Web應(yīng)用程序頁面中,發(fā)起多個(gè)請(qǐng)求獲取整個(gè)頁面中的數(shù)據(jù),并返回整個(gè)頁面中的所有數(shù)據(jù),這將會(huì)產(chǎn)生較長(zhǎng)的等待時(shí)間,造成了 Web應(yīng)用程序的緩慢笨拙,此時(shí),若只發(fā)送一部分請(qǐng)求,而另一部分請(qǐng)求的發(fā)送將暫停,待加載了這一部分請(qǐng)求所返回的數(shù)據(jù)后再恢復(fù)執(zhí)行發(fā)送另一部分請(qǐng)求,這樣將大大提高了 Web應(yīng)用程序的靈活性。但是,由于網(wǎng)頁腳本語言中并不具備類似于java中的睡眠函數(shù),網(wǎng)頁腳本語言若·需要在執(zhí)行過程中暫停是非常不方便的。為了使網(wǎng)頁腳本語言在執(zhí)行過程中能夠?qū)崿F(xiàn)睡眠狀態(tài),通常將執(zhí)行的函數(shù)強(qiáng)行拆分成兩個(gè)函數(shù),一個(gè)函數(shù)執(zhí)行完畢之后將在設(shè)定的時(shí)間內(nèi)暫停執(zhí)行,待超過設(shè)定的時(shí)間后執(zhí)行另一函數(shù)。這破壞了原有函數(shù)的結(jié)構(gòu),缺乏靈活性。此外,還可利用ajax技術(shù)(Asynchronous JavaScript and XML)中的回調(diào)函數(shù)來喚醒某個(gè)函數(shù)來實(shí)現(xiàn)網(wǎng)頁腳本語言執(zhí)行過程中的暫停,可是,這將使得網(wǎng)頁腳本語言的執(zhí)行過程依賴于ajax技術(shù),同樣存在著缺乏靈活性的問題。
發(fā)明內(nèi)容基于此,有必要提供一種能靈活實(shí)現(xiàn)暫停執(zhí)行的網(wǎng)頁腳本語言的執(zhí)行方法。此外,還有必要提供一種能靈活實(shí)現(xiàn)暫停執(zhí)行的網(wǎng)頁腳本語言的執(zhí)行裝置?!N網(wǎng)頁腳本語言的執(zhí)行方法,包括如下步驟執(zhí)行網(wǎng)頁腳本語言主函數(shù);當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于所述第一函數(shù)中的標(biāo)記;根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù);在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)。優(yōu)選地,所述根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù)的步驟之前還包括記錄所述網(wǎng)頁腳本語言主函數(shù)的執(zhí)行上下文;所述在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)的步驟為在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù);執(zhí)行所述第二函數(shù)。優(yōu)選地,所述在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù)的步驟之前還包括通過所述第一函數(shù)中的定時(shí)器判斷是否達(dá)到設(shè)定時(shí)間,若是,則進(jìn)入所述在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù)的步驟。優(yōu)選地,還包括當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從所述網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入所述第一函數(shù)中作為設(shè)定時(shí)間。優(yōu)選地,所述第一函數(shù)為睡眠函數(shù)。一種網(wǎng)頁腳本語言的執(zhí)行裝置,包括主函數(shù)執(zhí)行模塊,用于執(zhí)行網(wǎng)頁腳本語言主函數(shù);·標(biāo)記獲取模塊,用于當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于所述第一函數(shù)中的標(biāo)記;函數(shù)構(gòu)造模塊,用于根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù);第二函數(shù)執(zhí)行模塊,用于在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)。優(yōu)選地,還包括記錄模塊,用于記錄所述網(wǎng)頁腳本語言主函數(shù)的執(zhí)行上下文;所述第二函數(shù)執(zhí)行模塊包括第二函數(shù)調(diào)用單元,用于在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述
第二函數(shù);執(zhí)行單元,用于執(zhí)行所述第二函數(shù)。優(yōu)選地,所述第二函數(shù)執(zhí)行模塊還包括定時(shí)器單元,用于判斷是否達(dá)到設(shè)定時(shí)間,若是,則通知所述第二函數(shù)調(diào)用單元。優(yōu)選地,還包括參數(shù)傳遞模塊,用于當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從所述網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入所述第一函數(shù)中作為設(shè)定時(shí)間。優(yōu)選地,所述第一函數(shù)為睡眠函數(shù)。上述網(wǎng)頁腳本語言的執(zhí)行方法及裝置在網(wǎng)頁腳本語言主函數(shù)的執(zhí)行過程中調(diào)用第一函數(shù),并通過第一函數(shù)將網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼構(gòu)造成第二函數(shù),進(jìn)而使得網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼暫停執(zhí)行,待達(dá)到設(shè)定時(shí)間后通過第二函數(shù)執(zhí)行網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼,靈活地實(shí)現(xiàn)了網(wǎng)頁腳本語言中的暫停執(zhí)行,并且不會(huì)破壞原有代碼的結(jié)構(gòu),易于控制網(wǎng)頁腳本語言中的整個(gè)執(zhí)行過程。
圖I為一個(gè)實(shí)施例中網(wǎng)頁腳本語言的執(zhí)行方法的流程圖;圖2為圖I中在達(dá)到設(shè)定時(shí)間后執(zhí)行第二函數(shù)的方法流程圖;圖3為一個(gè)實(shí)施例中網(wǎng)頁腳本語言的執(zhí)行裝置的結(jié)構(gòu)示意圖;圖4為另一個(gè)實(shí)施例中網(wǎng)頁腳本語言的執(zhí)行裝置的結(jié)構(gòu)示意圖;圖5為圖7中第二函數(shù)執(zhí)行模塊的結(jié)構(gòu)示意圖。
具體實(shí)施方式圖I示出了一個(gè)實(shí)施例中網(wǎng)頁腳本語言的執(zhí)行方法,包括如下步驟步驟S110,執(zhí)行網(wǎng)頁腳本語言主函數(shù)。
本實(shí)施例中,網(wǎng)頁腳本語言(Javascript)用于滿足瀏覽器中的用戶需求,實(shí)現(xiàn)各種應(yīng)用程序。在用戶運(yùn)行瀏覽器時(shí)將執(zhí)行對(duì)應(yīng)的網(wǎng)頁腳本語言主函數(shù)中的代碼,例如,若用戶在瀏覽器中開啟了某一頁面,該頁面中存在多個(gè)有關(guān)聯(lián)關(guān)系的表格,此時(shí)為了向該用戶展示開啟的這一頁面,執(zhí)行網(wǎng)頁腳本語言主函數(shù)發(fā)起多個(gè)請(qǐng)求加載多個(gè)有關(guān)聯(lián)關(guān)系的表格及其數(shù)據(jù)。具體地,逐行執(zhí)行網(wǎng)頁腳本語言主函數(shù)中的代碼,對(duì)應(yīng)頁面中的多個(gè)表格逐個(gè)發(fā)起請(qǐng)求,逐個(gè)加載頁面中的每一表格。步驟S130,當(dāng)執(zhí)行到網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于第一函數(shù)中的標(biāo)記。本實(shí)施例中,在逐行執(zhí)行代碼的過程中調(diào)用第一函數(shù),此時(shí),由于網(wǎng)頁腳本語言是單線程語言,當(dāng)一個(gè)函數(shù)被調(diào)用時(shí),其它函數(shù)必須等待,因此在網(wǎng)頁腳本語言主函數(shù)執(zhí)行過程中調(diào)用第一函數(shù)后,網(wǎng)頁腳本語言主函數(shù)將進(jìn)入等待狀態(tài)。為實(shí)現(xiàn)網(wǎng)頁腳本語言主函數(shù)的暫停執(zhí)行,第一函數(shù)為睡眠函數(shù)。例如,網(wǎng)頁腳本語言主函數(shù)執(zhí)行到“sleep (this, 10) ;return ;flag”語句時(shí),將調(diào)用sleep函數(shù),此時(shí)網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼將暫停執(zhí)行,與不能夠暫停的網(wǎng)頁腳本語言主函數(shù)相比較,實(shí)現(xiàn)了暫停的網(wǎng)頁腳本語言主函數(shù)中的代碼僅僅多了一個(gè)調(diào)用第一函數(shù)的語句,如“sleep (this, 10) ;return ;flag”,不會(huì)破壞原有網(wǎng)頁腳本語言主函數(shù)中的代碼結(jié)構(gòu),并且也易于編寫和維護(hù)。sleep函數(shù)中的標(biāo)記即為flag, flag之前的代碼是已經(jīng)執(zhí)行了的代碼,flag之后的代碼是還未執(zhí)行的代碼。步驟S150,根據(jù)標(biāo)記之后的代碼構(gòu)造第二函數(shù)。本實(shí)施例中,利用網(wǎng)頁腳本語言的動(dòng)態(tài)構(gòu)造函數(shù)的能力,將網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行的代碼動(dòng)態(tài)地封裝進(jìn)新的函數(shù)中,對(duì)未執(zhí)行的代碼進(jìn)行前后拼接補(bǔ)充語句,形成
第二函數(shù)。具體地,上述根據(jù)標(biāo)記之后的代碼構(gòu)造第二函數(shù)的步驟可以是從網(wǎng)頁腳本語言主函數(shù)中提取出所有的代碼,在提取的代碼中按照標(biāo)記截取標(biāo)記之后的代碼,封裝截取的代碼構(gòu)造得到第二函數(shù)。根據(jù)標(biāo)記可以獲知哪些是已經(jīng)執(zhí)行了的代碼,哪些是還未執(zhí)行的代碼,進(jìn)而從提取的代碼中截取出未執(zhí)行的代碼。利用腳本語言動(dòng)態(tài)構(gòu)造函數(shù)的能力,為截取得到的未執(zhí)行代碼補(bǔ)充語句以形成一個(gè)完整的函數(shù),所補(bǔ)充的語句包括了 “functionO {} ”等語句。步驟S170,在達(dá)到設(shè)定時(shí)間后執(zhí)行第二函數(shù)。本實(shí)施例中,網(wǎng)頁腳本語言主函數(shù)中對(duì)于未執(zhí)行的代碼,需要暫停一段時(shí)間再執(zhí)行,為實(shí)現(xiàn)網(wǎng)頁腳本語言主函數(shù)中的暫停,包含了網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行代碼的第二函數(shù)將在間隔一個(gè)設(shè)定時(shí)間后執(zhí)行,此時(shí),網(wǎng)頁腳本語言主函數(shù)中已經(jīng)執(zhí)行了的代碼與未執(zhí)行代碼之間將產(chǎn)生間斷,不再連續(xù)執(zhí)行。在另一個(gè)實(shí)施例中,上述步驟S150之前還包括了記錄網(wǎng)頁腳本語言的執(zhí)行上下文的步驟。本實(shí)施例中,為調(diào)用第二函數(shù),還需要記錄網(wǎng)頁腳本語言的執(zhí)行上下文,即調(diào)用者或擁有者。如圖2所示,上述步驟S170的具體過程為
步驟S171,在達(dá)到設(shè)定時(shí)間后通過記錄的執(zhí)行上下文調(diào)用第二函數(shù)。本實(shí)施例中,在已經(jīng)執(zhí)行了的代碼執(zhí)行完畢后等待一段時(shí)間后再進(jìn)行第二函數(shù)的調(diào)用,使網(wǎng)頁腳本語言主函數(shù)中代碼的執(zhí)行出現(xiàn)了暫停。在另一個(gè)實(shí)施例中,上述步驟S171之前還包括通過第一函數(shù)中的定時(shí)器判斷是否達(dá)到設(shè)定時(shí)間,若是,則進(jìn)入步驟S171,若否,則繼續(xù)通過定時(shí)器計(jì)時(shí)。本實(shí)施例中,在第一函數(shù)中設(shè)定定時(shí)器,該定時(shí)器中的時(shí)間即為設(shè)定時(shí)間,通過定時(shí)器判斷是否超時(shí),若是,則開始執(zhí)行第二函數(shù),若否,則繼續(xù)通過定時(shí)器計(jì)時(shí),以判定是否超時(shí)。在另一個(gè)實(shí)施例中,上述網(wǎng)頁腳本語言的執(zhí)行方法還包括當(dāng)執(zhí)行到網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入第一函數(shù)中作為設(shè)定時(shí)間的步驟。本實(shí)施例中,網(wǎng)頁腳本語言主函數(shù)在執(zhí)行過程中需要暫停時(shí),對(duì)應(yīng)的代碼中將包含了時(shí)間參數(shù),以告之需要對(duì)執(zhí)行過程進(jìn)行暫停的時(shí)長(zhǎng)。步驟S173,執(zhí)行第二函數(shù)。本實(shí)施例中,在暫停了一定時(shí)間后執(zhí)行第二函數(shù),對(duì)應(yīng)地,所執(zhí)行的代碼即為網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行的代碼,實(shí)現(xiàn)了網(wǎng)頁腳本語言主函數(shù)執(zhí)行過程中的暫停。圖3示出了一個(gè)實(shí)施例中網(wǎng)頁腳本語言的執(zhí)行裝置,包括主函數(shù)執(zhí)行模塊10、標(biāo)記獲取模塊30、函數(shù)構(gòu)造模塊50以及第二函數(shù)執(zhí)行模塊70。主函數(shù)執(zhí)行模塊10,用于執(zhí)行網(wǎng)頁腳本語言主函數(shù)。本實(shí)施例中,網(wǎng)頁腳本語言用于滿足瀏覽器中的用戶需求,實(shí)現(xiàn)各種應(yīng)用程序。在用戶運(yùn)行瀏覽器時(shí)將執(zhí)行對(duì)應(yīng)的網(wǎng)頁腳本語言主函數(shù)中的代碼,例如,若用戶在瀏覽器中開啟了某一頁面,該頁面中存在多個(gè)有關(guān)聯(lián)關(guān)系的表格,此時(shí)為了向該用戶展示開啟的這一頁面,主函數(shù)執(zhí)行模塊10將執(zhí)行網(wǎng)頁腳本語言主函數(shù)發(fā)起多個(gè)請(qǐng)求加載多個(gè)有關(guān)聯(lián)關(guān)系的表格及其數(shù)據(jù)。具體地,主函數(shù)執(zhí)行模塊10逐行執(zhí)行網(wǎng)頁腳本語言主函數(shù)中的代碼,對(duì)應(yīng)頁面中的多個(gè)表格逐個(gè)發(fā)起請(qǐng)求,逐個(gè)加載頁面中的每一表格。標(biāo)記獲取模塊30,用于當(dāng)執(zhí)行到網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于第一函數(shù)中的標(biāo)記。本實(shí)施例中,調(diào)用模塊30在逐行執(zhí)行代碼的過程中調(diào)用第一函數(shù),此時(shí),由于網(wǎng)頁腳本語言是單線程語言,當(dāng)一個(gè)函數(shù)被調(diào)用時(shí),其它函數(shù)必須等待,因此調(diào)用模塊30在網(wǎng)頁腳本語言主函數(shù)執(zhí)行過程中調(diào)用第一函數(shù)后,網(wǎng)頁腳本語言主函數(shù)將進(jìn)入等待狀態(tài)。為實(shí)現(xiàn)網(wǎng)頁腳本語言主函數(shù)的暫停執(zhí)行,第一函數(shù)為睡眠函數(shù)。例如,網(wǎng)頁腳本語言主函數(shù)執(zhí)行到“sleep (this, 10) ;return ;flag”語句時(shí),調(diào)用模塊30將調(diào)用sleep函數(shù),此時(shí)網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼將暫停執(zhí)行,與不能夠暫停的網(wǎng)頁腳本語言主函數(shù)相比較,實(shí)現(xiàn)了暫停的網(wǎng)頁腳本語言主函數(shù)中的代碼僅僅多了一個(gè)調(diào)用第一函數(shù)的語句,如“sleep (this, 10) ;return ;flag”,不會(huì)破壞原有網(wǎng)頁腳本語言主函數(shù)中的代碼結(jié)構(gòu),并且也易于編寫和維護(hù)。sleep函數(shù)中的標(biāo)記即為flag, flag之前的代碼是已經(jīng)執(zhí)行了的代碼,flag之后的代碼是還未執(zhí)行的代碼。函數(shù)構(gòu)造模塊50,用于根據(jù)標(biāo)記之后的代碼構(gòu)造第二函數(shù)。
本實(shí)施例中,利用網(wǎng)頁腳本語言的動(dòng)態(tài)構(gòu)造函數(shù)的能力,函數(shù)構(gòu)造模塊50將網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行的代碼動(dòng)態(tài)地封裝進(jìn)新的函數(shù)中,對(duì)未執(zhí)行的代碼進(jìn)行前后拼接補(bǔ)充語句,形成第二函數(shù)。具體地,函數(shù)構(gòu)造模塊50從網(wǎng)頁腳本語言主函數(shù)中提取出所有的代碼,在提取的代碼中按照標(biāo)記截取標(biāo)記之后的代碼,封裝截取的代碼構(gòu)造得到第二函數(shù)。函數(shù)構(gòu)造模塊50根據(jù)標(biāo)記可以獲知哪些是已經(jīng)執(zhí)行了的代碼,哪些是還未執(zhí)行的代碼,進(jìn)而從提取的代碼中截取出未執(zhí)行的代碼。利用腳本語言動(dòng)態(tài)構(gòu)造函數(shù)的能力,為截取得到的未執(zhí)行代碼補(bǔ)充語句以形成一個(gè)完整的函數(shù),所補(bǔ)充的語句包括了“functionO H” 等語句。第二函數(shù)執(zhí)行模塊70,用于在達(dá)到設(shè)定時(shí)間后執(zhí)行第二函數(shù)。本實(shí)施例中,網(wǎng)頁腳本語言主函數(shù)中對(duì)于未執(zhí)行的代碼,需要暫停一段時(shí)間再執(zhí)行,為實(shí)現(xiàn)網(wǎng)頁腳本語言主函數(shù)中的暫停,包含了網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行代碼的第二函數(shù)將通過第二函數(shù)執(zhí)行模塊70在間隔一個(gè)設(shè)定時(shí)間后執(zhí)行,此時(shí),網(wǎng)頁腳本語言主函數(shù)中已經(jīng)執(zhí)行了的代碼與未執(zhí)行代碼之間將產(chǎn)生間斷,不再連續(xù)執(zhí)行。在另一個(gè)實(shí)施例中,如圖4所示,上述網(wǎng)頁腳本語言的執(zhí)行裝置還包括了記錄模塊90,該記錄模塊90用于記錄網(wǎng)頁腳本語言主函數(shù)的執(zhí)行上下文。本實(shí)施例中,為調(diào)用第二函數(shù),還需要記錄模塊90記錄網(wǎng)頁腳本語言的執(zhí)行上下文,即調(diào)用者或擁有者。如圖5所示,上述第二函數(shù)執(zhí)行模塊70包括第二函數(shù)調(diào)用單元701以及執(zhí)行單元703。第二函數(shù)調(diào)用單元701,用于在達(dá)到設(shè)定時(shí)間后通過記錄的執(zhí)行上下文調(diào)用第二函數(shù)。本實(shí)施例中,在已經(jīng)執(zhí)行了的代碼執(zhí)行完畢后等待一段時(shí)間后再進(jìn)行第二函數(shù)的調(diào)用,使網(wǎng)頁腳本語言主函數(shù)中代碼的執(zhí)行出現(xiàn)了暫停。在另一個(gè)實(shí)施例中,上述第二函數(shù)執(zhí)行模塊70還包括定時(shí)器單元,該定時(shí)器單元用于在第一函數(shù)中設(shè)定并判斷是否達(dá)到設(shè)定時(shí)間,若是,則通知第二函數(shù)調(diào)用單元701,若否,則通過定時(shí)器單元繼續(xù)計(jì)時(shí)。本實(shí)施例中,在第一函數(shù)中設(shè)定定時(shí)器,該定時(shí)器中的時(shí)間即為設(shè)定時(shí)間,通過定時(shí)器判斷是否超時(shí),若是,則通知第二函數(shù)調(diào)用單元701開始調(diào)用第二函數(shù),若否,則繼續(xù)通過定時(shí)器計(jì)時(shí),以判定是否超時(shí)。在另一個(gè)實(shí)施例中,上述網(wǎng)頁腳本語言的執(zhí)行裝置還包括了參數(shù)傳遞模塊,該參數(shù)傳遞模塊用于當(dāng)執(zhí)行到網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入第一函數(shù)中作為設(shè)定時(shí)間。本實(shí)施例中,網(wǎng)頁腳本語言主函數(shù)在執(zhí)行過程中需要暫停時(shí),對(duì)應(yīng)的代碼中將包含了時(shí)間參數(shù),以告之需要對(duì)執(zhí)行過程進(jìn)行暫停的時(shí)長(zhǎng)。執(zhí)行單元703,用于執(zhí)行第二函數(shù)。本實(shí)施例中,在暫停了一定時(shí)間后執(zhí)行第二函數(shù),對(duì)應(yīng)地,所執(zhí)行的代碼即為網(wǎng)頁腳本語言主函數(shù)中未執(zhí)行的代碼,實(shí)現(xiàn)了網(wǎng)頁腳本語言主函數(shù)執(zhí)行過程中的暫停。上述網(wǎng)頁腳本語言的執(zhí)行裝置運(yùn)行于瀏覽器或者Web客戶端中。
上述網(wǎng)頁腳本語言的執(zhí)行方法及裝置在網(wǎng)頁腳本語言主函數(shù)的執(zhí)行過程中調(diào)用第一函數(shù),并通過第一函數(shù)將網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼構(gòu)造成第二函數(shù),進(jìn)而使得網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼暫停執(zhí)行,待達(dá)到設(shè)定時(shí)間后通過第二函數(shù)執(zhí)行網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼,靈活地實(shí)現(xiàn)了網(wǎng)頁腳本語言中的暫停執(zhí)行,并且不會(huì)破壞原有代碼的結(jié)構(gòu),易于控制網(wǎng)頁腳本語言中的整個(gè)執(zhí)行過程。上述網(wǎng)頁腳本語言的執(zhí)行方法及裝置將定時(shí)器置于第一函數(shù)中,不需要對(duì)網(wǎng)頁腳本語言主函數(shù)進(jìn)行改造,也不對(duì)網(wǎng)頁腳本語言主函數(shù)造成干擾,保證了執(zhí)行過程中的穩(wěn)定性。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種網(wǎng)頁腳本語言的執(zhí)行方法,包括如下步驟 執(zhí)行網(wǎng)頁腳本語言主函數(shù); 當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于所述第一函數(shù)中的標(biāo)記; 根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù); 在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)。
2.根據(jù)權(quán)利要求I所述的網(wǎng)頁腳本語言的執(zhí)行方法,其特征在于,所述根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù)的步驟之前還包括 記錄所述網(wǎng)頁腳本語言主函數(shù)的執(zhí)行上下文; 所述在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)的步驟為 在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù); 執(zhí)行所述第二函數(shù)。
3.根據(jù)權(quán)利要求2所述的網(wǎng)頁腳本語言的執(zhí)行方法,其特征在于,所述在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù)的步驟之前還包括 通過所述第一函數(shù)中的定時(shí)器判斷是否達(dá)到設(shè)定時(shí)間,若是,則進(jìn)入所述在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù)的步驟。
4.根據(jù)權(quán)利要求3所述的網(wǎng)頁腳本語言的執(zhí)行方法,其特征在于,還包括 當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從所述網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入所述第一函數(shù)中作為設(shè)定時(shí)間。
5.根據(jù)權(quán)利要求I所述的網(wǎng)頁腳本語言的執(zhí)行方法,其特征在于,所述第一函數(shù)為睡眠函數(shù)。
6.一種網(wǎng)頁腳本語言的執(zhí)行裝置,其特征在于,包括 主函數(shù)執(zhí)行模塊,用于執(zhí)行網(wǎng)頁腳本語言主函數(shù); 標(biāo)記獲取模塊,用于當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于所述第一函數(shù)中的標(biāo)記; 函數(shù)構(gòu)造模塊,用于根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù); 第二函數(shù)執(zhí)行模塊,用于在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)。
7.根據(jù)權(quán)利要求6所述的網(wǎng)頁腳本語言的執(zhí)行裝置,其特征在于,還包括 記錄模塊,用于記錄所述網(wǎng)頁腳本語言主函數(shù)的執(zhí)行上下文; 所述第二函數(shù)執(zhí)行模塊包括 第二函數(shù)調(diào)用單元,用于在達(dá)到設(shè)定時(shí)間后通過所述記錄的執(zhí)行上下文調(diào)用所述第二函數(shù); 執(zhí)行單元,用于執(zhí)行所述第二函數(shù)。
8.根據(jù)權(quán)利要求7所述的網(wǎng)頁腳本語言的執(zhí)行裝置,其特征在于,所述第二函數(shù)執(zhí)行模塊還包括 定時(shí)器單元,用于判斷是否達(dá)到設(shè)定時(shí)間,若是,則通知所述第二函數(shù)調(diào)用單元。
9.根據(jù)權(quán)利要求8所述的網(wǎng)頁腳本語言的執(zhí)行裝置,其特征在于,還包括 參數(shù)傳遞模塊,用于當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),從所述網(wǎng)頁腳本語言主函數(shù)中獲取時(shí)間參數(shù),并傳入所述第一函數(shù)中作為設(shè)定時(shí)間。
10.根據(jù)權(quán)利要求6所述的網(wǎng)頁腳本語言的執(zhí)行裝置,其特征在于,所述第一函數(shù)為睡眠函數(shù)。
全文摘要
一種網(wǎng)頁腳本語言的執(zhí)行方法,包括如下步驟執(zhí)行網(wǎng)頁腳本語言主函數(shù);當(dāng)執(zhí)行到所述網(wǎng)頁腳本語言主函數(shù)中的第一函數(shù)時(shí),獲取設(shè)置于所述第一函數(shù)中的標(biāo)記;根據(jù)所述標(biāo)記之后的代碼構(gòu)造第二函數(shù);在達(dá)到設(shè)定時(shí)間后執(zhí)行所述第二函數(shù)。上述網(wǎng)頁腳本語言的執(zhí)行方法及裝置在網(wǎng)頁腳本語言主函數(shù)的執(zhí)行過程中調(diào)用第一函數(shù),并通過第一函數(shù)將網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼構(gòu)造成第二函數(shù),進(jìn)而使得網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼暫停執(zhí)行,待達(dá)到設(shè)定時(shí)間后通過第二函數(shù)執(zhí)行網(wǎng)頁腳本語言主函數(shù)中還未執(zhí)行的代碼,靈活地實(shí)現(xiàn)了網(wǎng)頁腳本語言中的暫停執(zhí)行,并且不會(huì)破壞原有代碼的結(jié)構(gòu),易于控制網(wǎng)頁腳本語言中的整個(gè)執(zhí)行過程。
文檔編號(hào)G06F9/44GK102981812SQ201110264110
公開日2013年3月20日 申請(qǐng)日期2011年9月7日 優(yōu)先權(quán)日2011年9月7日
發(fā)明者陳界 申請(qǐng)人:深圳市金蝶中間件有限公司