TWI708185B - 程式的運行方法及裝置、計算設備以及儲存介質 - Google Patents
程式的運行方法及裝置、計算設備以及儲存介質 Download PDFInfo
- Publication number
- TWI708185B TWI708185B TW108117656A TW108117656A TWI708185B TW I708185 B TWI708185 B TW I708185B TW 108117656 A TW108117656 A TW 108117656A TW 108117656 A TW108117656 A TW 108117656A TW I708185 B TWI708185 B TW I708185B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- operating data
- running
- data
- operating
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本揭示提供了一種程式的運行方法、裝置、計算設備以及儲存介質,所述方法包括:回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料;運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面;回應於所述第一頁面中控制項的第二觸發指令,確定所述控制項對應的第二頁面標識;當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取第二運行資料;以及運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面。
Description
本揭示涉及資訊技術領域,尤其涉及一種程式的運行方法及裝置、計算設備以及儲存介質。
隨著資訊技術的發展,線上活動可以滿足越來越多用戶的生活需求,如購物需求、觀影需求、理財需求等等。用戶可以通過在終端設備上安裝各式各樣的應用程式來進行線上活動,當用戶獲取該應用程式時,由於應用程式容量過大導致在下載以及運行該應用程式時都會導致耗時嚴重的問題,所以減少這種耗時是解決上述問題的關鍵。
本揭示提出了以下技術方案,能夠加快程式的啟動時間以及執行時間。
本揭示實例提出了一種程式的運行方法,包括:回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料,所述第一運行資料至少包括用於啟動程式的代碼;運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面;回應於所述第一頁面中控制項的第二觸發指令,確定所述控制項對應的第二頁面標識;當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取第二運行資料,所述第二運行資料包含所述第二頁面標識對應的運行資料;以及運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面,所述第二運行資料包括程式的多個部分代碼。
本揭示實例還提出了一種程式的運行裝置,包括:第一獲取模組,用於回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料,所述第一運行資料至少包括用於啟動程式的代碼;第一運行模組,用於運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面;確定模組,用於回應於所述第一頁面中控制項的第二觸發指令,確定所述控制項對應的第二頁面標識;第二獲取模組,用於當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取第二運行資料,所述第二運行資料包含所述第二頁面標識對應的運行資料;以及第二運行模組,用於運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面,所述第二運行資料包括程式的多個部分代碼。
在一些實例中,所述第二運行模組用於當所述第二頁面標識對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面標識對應的所述運行資料,並根據所述第二頁面標識對應的運行資料展示所述第二頁面。
在一些實例中,所述第一獲取模組包括:發送單元,用於向所述伺服器發送獲取請求,所述獲取請求攜帶所述程式的標識;以及接收單元,用於接收所述伺服器回應於所述獲取請求發送的所述第一運行資料。
在一些實例中,所述第一運行模組用於通過運行容器運行所述第一運行資料;其中所述第二運行模組用於通過所述運行容器運行所述第二運行資料。
在一些實例中,所述裝置進一步包括:儲存模組,用於將獲取到的所述第一運行資料儲存至本機存放區區域中;第一獲取模組,用於獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中;當將所述第一運行資料發送至所述運行容器中後,第一運行模組用於執行所述通過所述運行容器運行所述第一運行資料的步驟。
在一些實例中,所述第一運行資料包括所述第一頁面對應的第一邏輯運行資料以及第一視圖運行資料;其中所述第一獲取模組包括:第一獲取單元,用於獲取所述本機存放區區域中的所述第一邏輯運行資料並發送至運行容器中;以及第二獲取單元,用於當所述運行容器運行所述第一邏輯運行資料後,獲取所述本機存放區區域中的所述第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的第一頁面。
在一些實例中,所述第一運行資料包括多個控制項對應的頁面跳轉路徑;其中,所述確定模組,根據所述控制項確定第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述第二頁面標識;其中,所述第二獲取模組,當確定所述第一頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑,從所述伺服器獲取所述第二運行資料。
在一些實例中,所述確定模組,回應於所述第二頁面中控制項的第三觸發指令,根據所述第一運行資料用於確定所述第二頁面中控制項對應的第二頁面跳轉路徑;所述裝置進一步包括:第三獲取模組,用於當所述第二頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中以及所述第二運行資料中時,根據所述第二頁面跳轉路徑從所述伺服器獲取對應的第三運行資料,所述第三運行資料包含所述第二頁面跳轉路徑對應的運行資料;以及第三運行模組,用於運行所述第三運行資料,並根據所述第三運行資料展示所述第三頁面。
在一些實例中,所述第一運行模組用於當所述第二頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面跳轉路徑對應的運行資料,並根據所述第二頁面跳轉路徑對應的運行資料展示所述第三頁面。
在一些實例中,所述第一運行資料還包括所述多個頁面跳轉路徑對應的第一邏輯運行資料以及第一視圖運行資料;其中所述第一獲取模組用於當確定所述第一頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,獲取所述本機存放區區域中的與所述第一頁面跳轉路徑對應的第一邏輯運行資料並發送至運行容器中;當所述運行容器運行所述第一頁面跳轉路徑對應的第一邏輯運行資料後,獲取所述本機存放區區域中與所述第一頁面跳轉路徑對應的第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的所述第二頁面。
在一些實例中,所述第二運行資料包括與多個頁面跳轉路徑對應的第二邏輯運行資料以及第二視圖運行資料;其中所述儲存模組用於將獲取到的第二運行資料儲存至本機存放區區域中;其中所述第二運行模組包括:獲取單元,用於獲取所述本機存放區區域中的與第一頁面跳轉路徑對應的第二邏輯運行資料並發送至運行容器中;當所述運行容器運行與第一頁面跳轉路徑對應的第二邏輯運行資料後,獲取所述本機存放區區域中與第一頁面跳轉路徑對應的第二視圖運行資料並發送至所述運行容器中,從而展示所述第二頁面。
本揭示實例還提出了一種程式的運行方法,包括:接收表示程式部分代碼的組合資訊;根據所述組合資訊,對所述程式部分代碼進行組合,生成多個運行資料;當接收到所述運行資料的第一獲取請求時,回應所述第一獲取發送表示啟動所述程式的第一運行資料;以及當接收到所述運行資料第二獲取請求,所述第二獲取請求攜帶跳轉路徑,獲取與所述跳轉路徑對應的第二運行資料並回應所述第二獲取請求發送所述第二運行資料。
本揭示實例還提出了一種程式的運行裝置,包括:接收模組,用於接收表示程式部分代碼的組合資訊;生成模組,用於根據所述組合資訊,對所述程式部分代碼進行組合,生成多個運行資料;以及發送模組,用於當接收到所述運行資料的第一獲取請求時,回應所述第一獲取發送表示啟動所述程式的第一運行資料;以及用於當接收到所述運行資料第二獲取請求,所述第二獲取請求攜帶跳轉路徑,獲取與所述跳轉路徑對應的第二運行資料並回應所述第二獲取請求發送所述第二運行資料。
本揭示實例還提出了一種計算設備,包括記憶體、處理器以及儲存在所述記憶體上並在所述處理器上運行的電腦程式;所述處理器執行所述電腦程式時實現上述的方法。
本揭示實例還提出了一種儲存介質,儲存有一個或多個程式,所述一個或多個程式包括指令,所述指令當由計算設備執行時,使得所述計算設備執行上述的方法。
應用本揭示的技術方案,可以先拉取程式的啟動資源即第一運行資料,減少由於下載量過大而導致的耗時,同時在啟動程式時能夠加快啟動時間,給用戶帶來良好的使用體驗,當用戶進行程式操作時,會根據用戶的指令來確定待展示的頁面標識即第二頁面標識,當第二頁面標識不存在於啟動資源中時,根據第二頁面標識拉取程式的其他運行資源,如第二運行資料,該第二運行資料中包含與第二頁面標識對應的運行資料,從而大大優化了程式的運行速度。
下面將結合本揭示實施例中的附圖,對本揭示實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本揭示一部分實施例,而不是全部的實施例。基於本揭示中的實施例,本揭示所屬技術領域中具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本揭示保護的範圍。
為了描述上的簡潔和直觀,下文通過描述若干代表性的實施例來對本揭示的方案進行闡述。實施例中大量的細節僅用於幫助理解本揭示的方案。但是很明顯,本揭示的技術方案實現時可以不局限於這些細節。為了避免不必要地模糊了本揭示的方案,一些實施方式沒有進行細緻地描述,而是僅給出了框架。下文中,“包括”是指“包括但不限於”,“根據……”是指“至少根據……,但不限於僅根據……”。下文中沒有特別指出一個成分的數量時,意味著該成分可以是一個也可以是多個,或可理解為至少一個。
該技術方案基於母應用和子應用系統實現,具體的,子應用是依附於母應用運行的應用程式,可通過母應用下載、啟動、運行、關閉子應用。母應用可以是社交應用、專門支援子應用的專用應用、文件管理應用、郵件應用或者遊戲應用等。社交應用包括即時通信應用、社交網站(Social Network Service,SNS)應用或者直播應用等。子應用則是可在母應用提供的環境中實現的應用,子應用具體可以是社交應用、文件管理應用、郵件應用或者遊戲應用等。
以母應用為微信,子應用為小程式舉例說明,微信小程式是一種新的開放能力,開發者可以快速地開發一個小程式。小程式可以在微信內被便捷地獲取和傳播,同時具有出色的使用體驗。小程式搭建了一套在微信應用內運行第三方程式的系統。通過微信掃描二維碼,搜索小程式名字,點擊分享消息等方法,下載並運行微信小程式(即第三方程式),向用戶提供服務。每個微信小程式都有一個對應的代碼包,在運行小程式之前需要先把代碼包下載到本地。因此在用戶側首次啟動必然存在一次下載過程,體積大的代碼包會下載耗時,下載耗時會影響啟動耗時,體積越大的代碼包對啟動耗時的影響越大。
第1圖示出了本揭示實例的程式的運行方法適用的系統100結構示意圖。該系統100包括伺服器101、網路102以及多個終端設備,如終端設備103和終端設備104。
伺服器101安裝有用於拆分程式的應用伺服器軟體,將程式拆分成多個分包和一個啟動包,伺服器101還可以包括多個CDN伺服器101a,將分包以及啟動包發送至CDN伺服器101a中,當任一個CDN伺服器101a接收到用戶端發送的獲取請求,向用戶端發送對應的啟動包或分包。
終端設備103或104是指具有資料計算處理功能的設備,包括但不限於(安裝有通信模組的)智慧手機、掌上型電腦、平板電腦等。終端設備103或104上安裝有作業系統,包括但不限於:Android作業系統、Symbian作業系統、Windows mobile作業系統、以及蘋果iPhone OS作業系統等等。
終端設備103或104安裝有用戶端(如社交APP),該用戶端通過網路102與伺服器101進行資訊交互,用戶端可以發送獲取請求至伺服器101,來獲取分包或啟動包。
網路102可以是有線網路,也可以是無線網路。
基於系統100,本揭示的實例提出了一種程式的運行方法,應用於終端設備103或104的用戶端中。如第2圖所示,該方法200包括以下步驟:
步驟201:回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料。
第一觸發指令可以為程式啟動指令。
第一運行資料至少包括用於啟動程式的代碼,該代碼可以為程式啟動包,啟動包包含有程式啟動代碼,用於啟動程式,該啟動包可以只有程式首頁運行代碼,也可以還有其他功能運行代碼。
所述從伺服器獲取所述程式的第一運行資料包括:向所述伺服器發送獲取請求,所述獲取請求攜帶所述程式的標識;接收所述伺服器回應於所述獲取請求發送的所述第一運行資料。
例如,根據前文所述,用戶可以通過微信APP搜索名稱為“XX視頻”的小程式,當搜索到該小程式後,用戶發出啟動該小程式的指令,即點擊搜索到的該小程式。微信APP回應於該觸發指令,向伺服器發送小程式獲取請求,該獲取請求可以攜帶該小程式的標識,伺服器接收到該獲取請求後,回應該獲取請求,向微信APP發送該小程式的啟動包。
步驟202:運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面。
第一頁面可以為程式的起始頁面或首頁面。
在一些實例中,所述運行所述第一運行資料包括:通過運行容器運行所述第一運行資料。當運行該第一運行資料後,即可展示該小程式的起始頁面。
步驟203:回應於所述第一頁面中控制項的第二觸發指令,確定所述控制項對應的第二頁面標識。
第二觸發指令可以包括但不限於為頁面跳轉指令,如視頻觀看指令,音樂收聽指令、遊戲載入指令等。
第二頁面可以為非起始頁面的其他跳越網頁面,如視頻觀看頁面、音樂收聽頁面等。
控制項可以為但不限於:圖示、按鈕等。
在一些實例中,如第2B圖所示,所述第一運行資料包括多個控制項對應的頁面跳轉路徑;其中步驟2031:所述確定所述控制項對應的第二頁面標識包括:根據所述控制項確定第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述第二頁面標識。
上述多個控制項可以包括第一運行資料中包括的多個控制項,還可以包括其他運行資料中包括的控制項,如第二運行資料中的控制項。
例如,根據前文所述,當用戶點擊視頻小程式的起始頁面中的視頻介紹圖示,即用戶發出了對該視頻進行觀看的第二觸發指令,微信APP回應於該第二觸發指令確定頁面跳轉路徑。
步驟204:當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取所述第二運行資料,所述第二運行資料包括第二頁面標識對應的運行資料。
第二運行資料包括程式的多個部分代碼,該部分代碼可以包括程式分包,分包包含有程式功能代碼,用於支援程式的功能運行,該分包中的功能代碼可以是一種功能代碼,例如電影相關功能代碼,也可以是音樂相關功能代碼,還可以是新聞相關功能代碼。
需要說明的是,小程式的代碼可以按照功能進行劃分,將同一個功能下的頁面的視圖和邏輯放置於同一個目錄下,對於一些跨功能之間公共邏輯,將其放置于啟動包下。
在一些實例中,如第2B圖所示,步驟2041:所述當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取所述第二運行資料包括:當確定所述第一頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑,從所述伺服器獲取所述第二運行資料。
步驟205:運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面。
在一些實例中,所述運行所述第二運行資料包括:通過所述運行容器運行所述第二運行資料,當運行該第二運行資料後,即可展示該小程式的第二頁面。
本技術方案通過將小程式代碼包拆分成啟動包和多個分包,根據用戶的需求,按需載入,使之可以在支援更大的小程式代碼包體積的情況下,不影響用戶的啟動體驗。
在一些實例中,所述從伺服器獲取所述程式的第一運行資料包括:向所述伺服器發送獲取請求,所述獲取請求攜帶所述程式的標識;接收所述伺服器回應於所述獲取請求發送的所述第一運行資料。
例如,根據前文所述,用戶通過可以通過微信APP搜索名稱為“XX視頻”的小程式,當搜索到該小程式後,用戶發出啟動該小程式的指令,即點擊搜索到的該小程式。微信APP回應於該觸發指令,向伺服器發送小程式獲取請求,該獲取請求可以攜帶該小程式的標識,伺服器接收到該獲取請求後,回應該獲取請求,向微信APP發送該小程式的啟動包代碼。啟動包可以僅包含該視頻小程式的起始頁面的運行代碼,例如初始資料頁檢視層代碼以及初始頁面邏輯代碼。
在一些實例中,所述運行所述第一運行資料包括:通過所述運行容器運行所述第一運行資料。所述方法200進一步包括:將獲取到的所述第一運行資料儲存至本機存放區區域中;獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中;當將所述第一運行資料發送至所述運行容器中後,執行通過所述運行容器運行所述第一運行資料的步驟。
所述第一運行資料包括所述第一頁面對應的第一邏輯運行資料以及第一視圖運行資料。
所述獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中包括:獲取所述本機存放區區域中的所述第一邏輯運行資料並發送至運行容器中;當所述運行容器運行所述第一邏輯運行資料後,獲取所述本機存放區區域中的所述第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的第一頁面。
運行容器為JavaScriptCore運行容器。
第一頁面對應的第一邏輯運行資料為第一邏輯代碼,即小程式的起始頁面邏輯代碼。
第一頁面對應的第一視圖運行資料為第一視圖層代碼,即小程式的起始資料頁檢視層代碼。
例如,根據前文所述,當微信APP接收到伺服器發送的第一運行資料後,可以將該第一運行資料儲存到終端設備的本機存放區區域內,微信APP從本機存放區區域內獲取到該第一運行資料,將第一邏輯代碼注入到JavaScriptCore運行容器中,當JavaScriptCore運行容器運行第一邏輯代碼後,注入第一視圖層代碼,向用戶展示該視頻小程式的初始頁面。
JavaScriptCore運行容器內可以設置有邏輯層單元以及視圖層單元,其中邏輯層單元可用於執行頁面邏輯代碼,視圖層單元可用於執行頁面樣式代碼即資料頁檢視層代碼。邏輯層單元運行頁面邏輯代碼獲取頁面資料,並將該頁面資料發送至對應視圖層單元,視圖層單元根據該頁面資料對該頁面進行渲染,當渲染完成後,該對應視圖層單元向邏輯層單元發送渲染完成的通知。在渲染完成後,終端設備的作業系統將該渲染後的頁面展示在應用程式視窗中。
在一些實例中,所述方法200進一步包括:當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面。
所述第一運行資料包括多個控制項對應的頁面跳轉路徑;所述確定所述控制項對應的第二頁面標識包括:根據所述控制項確定第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述第二頁面標識;所述當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,從所述伺服器獲取所述第二運行資料包括:當確定所述第一頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑,從所述伺服器獲取所述第二運行資料。
所述第二運行資料包括與多個頁面跳轉路徑對應的第二邏輯運行資料以及第二視圖運行資料;所述方法200進一步包括:將獲取到的第二運行資料儲存至本機存放區區域中。
運行所述第二運行資料包括:通過所述運行容器運行所述第二運行資料。
所述運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面包括:獲取所述本機存放區區域中的與第一頁面跳轉路徑對應的第二邏輯運行資料並發送至運行容器中;當所述運行容器運行與第一頁面跳轉路徑對應的第二邏輯運行資料後,獲取所述本機存放區區域中與第一頁面跳轉路徑對應的第二視圖運行資料並發送至所述運行容器中,從而展示所述第二頁面。
例如,根據前文所述,當用戶點擊視頻小程式的起始頁面中的“bb”電影視頻介紹圖示,即用戶發出了對“bb”電影視頻進行觀看的第二觸發指令,根據第一運行資料中儲存的控制項與頁面跳轉路徑的對應關係,微信APP回應於該控制項的第二觸發指令確定頁面跳轉路徑,如,“aaa”,將該頁面跳轉路徑作為該播放“bb”電影視頻的頁面標識,先在第一運行資料中查找是否存在與“aaa”對應的運行資料,當不存在運行資料時,則向伺服器發送獲取請求,該獲取請求攜帶該頁面跳轉路徑“aaa”,伺服器根據該頁面跳轉路徑“aaa”查找與該頁面跳轉路徑“aaa”對應的分包代碼,即第二運行資料,該分包代碼中包含有與該頁面跳轉路徑“aaa”對應的運行資料,伺服器將該第二運行資料發送至微信APP中,可以將該第二運行資料儲存到終端設備的本機存放區區域內,微信APP從本機存放區區域內獲取到該第二運行資料,將該頁面跳轉路徑“aaa”對應的第二邏輯代碼注入到JavaScriptCore運行容器中,當JavaScriptCore運行容器運行該第二邏輯代碼後,注入頁面跳轉路徑“aaa”對應的第二視圖層代碼,向用戶展示該視頻小程式的第二頁面,即播放“bb”電影視頻的頁面。
需要說明的是,啟動包可以儲存有該小程式所有控制項對應的頁面跳轉路徑,還可以啟動包只儲存有該啟動包中控制項對應的頁面跳轉路徑以及分包中都儲存有其分包中控制項對應的頁面跳轉路徑,當分包中可以儲存有其分包中控制項對應的頁面跳轉路徑,就可以通過該分包確定頁面跳轉路徑,並在當前已獲取到的代碼包中查找是否存在與該頁面跳轉路徑對應的運行資料。
在一些實例中,所述方法200進一步包括:當所述第二頁面標識對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面標識對應的所述運行資料,並根據所述第二頁面標識對應的運行資料展示所述第二頁面。
在一些實例中,所述第一運行資料還包括所述多個頁面跳轉路徑對應的第一邏輯運行資料以及第一視圖運行資料;所述方法200進一步包括:當確定所述第一頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,獲取所述本機存放區區域中的與所述第一頁面跳轉路徑對應的第一邏輯運行資料並發送至運行容器中;當所述運行容器運行所述第一頁面跳轉路徑對應的第一邏輯運行資料後,獲取所述本機存放區區域中與所述第一頁面跳轉路徑對應的第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的第一頁面。
例如,根據前文所述,當第一運行資料存在該運行資料時,獲取所述本機存放區區域中的該頁面跳轉路徑“aaa”對應的邏輯代碼以及視圖層代碼,將該頁面跳轉路徑“aaa”對應的邏輯代碼注入到JavaScriptCore運行容器中,當JavaScriptCore運行容器運行該邏輯代碼後,注入頁面跳轉路徑“aaa”對應的視圖層代碼,向用戶展示該視頻小程式的第二頁面,即播放“bb”電影視頻的頁面。
應理解,當第一運行資料存在該運行資料時,由於在小程式初始化即啟動時,可能只運行了啟動邏輯代碼以及啟動視圖層代碼,所以當選擇第一運行資料中的其他邏輯代碼以及對應的視圖層代碼時,需要將其他邏輯代碼以及對應的視圖層代碼注入到運行容器中。
在一些實例中,如第2C圖所示,所述方法200進一步包括:步驟206:回應於所述第二頁面中控制項的第三觸發指令,根據所述第一運行資料,確定所述第二頁面中控制項對應的第二頁面跳轉路徑;當所述第二頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中以及所述第二運行資料中時,根據所述第二頁面跳轉路徑從所述伺服器獲取對應的第三運行資料;及運行所述第三運行資料,並根據所述第三運行資料展示所述第三頁面,所述第三頁面包括所述第二頁面跳轉路徑對應的運行資料。
例如,根據前文所述,當用戶點擊播放“bb”電影視頻的頁面中的“cc”新聞視頻介紹圖示時,即用戶發出了對“cc”新聞視頻進行觀看的第三觸發指令,根據第一運行資料中儲存的控制項與頁面跳轉路徑的對應關係,微信APP回應於該控制項的第三觸發指令確定頁面跳轉路徑,例如,“ddd”,將該頁面跳轉路徑作為該播放“cc”新聞視頻的頁面標識,先在第一運行資料以及第二運行資料中查找是否存在與“ddd”對應的運行資料,當均不存在運行資料時,則向伺服器發送獲取請求,該獲取請求攜帶該頁面跳轉路徑“ddd”,伺服器根據該頁面跳轉路徑“ddd”查找與該頁面跳轉路徑“ddd”對應的分包代碼,即第三運行資料,該分包代碼中包含有與該頁面跳轉路徑“ddd”對應的運行資料,伺服器將該第三運行資料發送至微信APP中,可以將該第三運行資料儲存到終端設備的本機存放區區域內,微信APP從本機存放區區域內獲取到該第三運行資料,將該頁面跳轉路徑“ddd”對應的第三邏輯代碼注入到JavaScriptCore運行容器中,當JavaScriptCore運行容器運行該第三邏輯代碼後,注入頁面跳轉路徑“ddd”對應的第三視圖層代碼,向用戶展示該視頻小程式的第三頁面,即播放“cc”新聞視頻的頁面。
此外,還可以根據所述第二運行資料,確定所述第二頁面中控制項對應的第二頁面跳轉路徑。
在一些實例中,如第2C圖所示,所述方法200進一步包括:步驟207:當所述第二頁面跳轉路徑對應的運行資料存在於所述第一運行資料中以及所述第二運行資料中時,運行所述第二頁面跳轉路徑對應的運行資料,並根據所述第二頁面跳轉路徑對應的運行資料展示所述第三頁面。
例如,根據前文所述,當第一運行資料存在該運行資料時或第二運行資料存在該運行資料時,將該頁面跳轉路徑“ddd”對應的邏輯代碼注入到JavaScriptCore運行容器中,當JavaScriptCore運行容器運行該邏輯代碼後,注入頁面跳轉路徑“ddd”對應的視圖層代碼,向用戶展示該視頻小程式的第三頁面,即播放“cc”新聞視頻的頁面。
應理解,當第一運行資料存在該運行資料時,由於在小程式初始化即啟動時,可能只運行了啟動邏輯代碼以及啟動視圖層代碼,所以當選擇第一運行資料中的其他邏輯代碼以及對應的視圖層代碼時,需要將其他邏輯代碼以及對應的視圖層代碼注入到運行容器中。第二運行資料的運行情況與第一運行資料的運行情況相同,此處就不再贅述。
用戶在使用小程式過程中,當微信APP運行一個分包代碼時,打開頁面時,會短暫出現載入頁面,通常不會超過1秒,第3圖示出了載入頁面的實例300,隨後分包下的頁面即展示在用戶眼前。
小程式的啟動包與多個分包的總和大小的上限從2MB增加到4MB,業務方可以增加更多小程式功能,用戶可以在小程式上獲得更豐富的體驗。可以通過合理拆分啟動包,將啟動包控制在較小的體積,可以優化小程式的啟動速度。
基於上述實例,本揭示的實例提出了一種程式的運行方法,應用於伺服器101中。如第4圖所示,該方法400包括以下步驟:
步驟401:接收表示程式部分代碼的組合資訊。
例如,開發者根據功能將小程式的代碼進行拆分,可以拆分為多個代碼檔,即部分代碼,分別儲存在伺服器中,開發者通過在app.json(小程式設定檔)下配置分包組合的路徑,即組合資訊,即可完成分包的開發,通過微信開發者工具即可一鍵發佈,無需考慮服務端問題。伺服器接收微信開發者工具發送的該配置資訊檔,即獲取到該組合資訊。
下述為設定檔中的代碼:
{
“pages”:[
“pages/index”,
“pages/logs”
],
“subpackages”:[
{
“root”:“packageA”,
“pages”:[
“pages/cat”,
“pages/dog”
]
},{
“root”:“packageB”,
“pages”:[
“pages/apple”,
“pages/banana”,
]
}
]
}
步驟402:根據所述組合資訊,對所述程式部分代碼進行拆分,生成多個運行資料。
例如,根據前文所述,伺服器根據設定檔中的啟動包以及分包的拆分資訊,將多個代碼檔進行組合,生成小程式的啟動包以及多個分包。可以儲存在不同的CDN伺服器101a上,其儲存位址可以為:https://servicewhat.xx.com/wxidxxx/main.wxapkg, https://servicewhat.xx.com/wxidxxx/subpackage1.wxapkg,https://servicewhat.xx.com/wxidxxx/subpackage2.wxapkg。
步驟403:當接收到所述運行資料的第一獲取請求時,回應所述第一獲取發送表示啟動所述程式的第一運行資料。
例如,根據前文所述,當伺服器接收到微信APP發送的獲取請求,該獲取請求可以攜帶該小程式的標識,回應該獲取請求,向微信APP發送該小程式的啟動包。
步驟404:當接收到所述運行資料第二獲取請求,所述第二獲取請求攜帶跳轉路徑,獲取與所述跳轉路徑對應的第二運行資料並回應所述獲取請求發送所述第二運行資料。
例如,根據前文所述,微信APP向伺服器發送代碼獲取請求,該代碼獲取請求攜帶該頁面跳轉路徑“aaa”,伺服器根據該頁面跳轉路徑“aaa”查找與該頁面跳轉路徑“aaa”對應的分包代碼,即第二運行資料,該分包代碼中包含有與該頁面跳轉路徑“aaa”對應的運行資料,伺服器將該第二運行資料發送至微信APP中。
本技術方案開發成本較低,開發者不需要進行多個配置即可實現將拆分的代碼進行組合打包處理,儲存在伺服器即可,不需要考慮流覽器緩存的情況。
基於上述實例,本揭示的實例還提出了一種程式的運行裝置,應用於用戶端,如社交APP;如第5圖所示,所述運行裝置500包括:第一獲取模組501、第一運行模組502、確定模組503、第二獲取模組504以及第二運行模組505。各個模組的功能具體如下:
第一獲取模組501用於回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料,所述第一運行資料至少包括用於啟動程式的代碼。
第一運行模組502用於運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面。
確定模組503用於回應於所述第一頁面中控制項的第二觸發指令,確定所述控制項對應的第二頁面標識。
第二獲取模組504用於當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第二頁面標識從所述伺服器獲取第二運行資料,所述第二運行資料包含所述第二頁面標識對應的運行資料。
第二運行模組505用於運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面,所述第二運行資料包括程式的多個部分代碼。
在一些實例中,所述第二運行模組505還用於當所述第二頁面標識對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面標識對應的所述運行資料,並根據所述第二頁面標識對應的運行資料展示所述第二頁面。
在一些實例中,所述第一獲取模組501包括:發送單元,用於向所述伺服器發送獲取請求,所述獲取請求攜帶所述程式的標識;接收單元,用於接收所述伺服器回應於所述獲取請求發送的所述第一運行資料。
在一些實例中,所述第一運行模組502用於通過運行容器運行所述第一運行資料;所述第二運行模組505用於通過所述運行容器運行所述第二運行資料。
在一些實例中,所述運行裝置500進一步包括:儲存模組,用於將獲取到的所述第一運行資料儲存至本機存放區區域中;第一獲取模組501用於獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中;當將所述第一運行資料發送至所述運行容器中後,第一運行模組502用於執行所述通過所述運行容器運行所述第一運行資料的步驟。
在一些實例中,所述第一運行資料包括所述第一頁面對應的第一邏輯運行資料以及第一視圖運行資料;所述第一獲取模組501包括:第一獲取單元,用於獲取所述本機存放區區域中的所述第一邏輯運行資料並發送至運行容器中;第二獲取單元,用於當所述運行容器運行所述第一邏輯運行資料後,獲取所述本機存放區區域中的所述第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的第一頁面。
在一些實例中,所述第一運行資料包括多個控制項對應的頁面跳轉路徑;所述確定模組503用於根據所述控制項確定第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述第二頁面標識;所述第二獲取模組504用於當確定所述第一頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑,從所述伺服器獲取所述第二運行資料。
在一些實例中,所述確定模組503用於回應於所述第二頁面中控制項的第三觸發指令,根據所述第一運行資料,確定所述第二頁面中控制項對應的第二頁面跳轉路徑;所述運行裝置500進一步包括:第三獲取模組,用於當所述第二頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中以及所述第二運行資料中時,根據所述第二頁面跳轉路徑從所述伺服器獲取對應的第三運行資料,所述第三運行資料包含所述第二頁面跳轉路徑對應的運行資料;第三運行模組,用於運行所述第三運行資料,並根據所述第三運行資料展示所述第三頁面。
在一些實例中,所述第一運行模組502用於當所述第二頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面跳轉路徑對應的運行資料,並根據所述第二頁面跳轉路徑對應的運行資料展示所述第三頁面。
在一些實例中,所述第一運行資料還包括所述多個頁面跳轉路徑對應的第一邏輯運行資料以及第一視圖運行資料;所述第一獲取模組501用於當確定所述第一頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,獲取所述本機存放區區域中的與所述第一頁面跳轉路徑對應的第一邏輯運行資料並發送至運行容器中;當所述運行容器運行所述第一頁面跳轉路徑對應的第一邏輯運行資料後,獲取所述本機存放區區域中與所述第一頁面跳轉路徑對應的第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的所述第二頁面。
在一些實例中,所述第二運行資料包括與多個頁面跳轉路徑對應的第二邏輯運行資料以及第二視圖運行資料;所述儲存模組用於將獲取到的第二運行資料儲存至本機存放區區域中;所述第二運行模組505包括:獲取單元,用於獲取所述本機存放區區域中的與第一頁面跳轉路徑對應的第二邏輯運行資料並發送至運行容器中;當所述運行容器運行與第一頁面跳轉路徑對應的第二邏輯運行資料後,獲取所述本機存放區區域中與第一頁面跳轉路徑對應的第二視圖運行資料並發送至所述運行容器中,從而展示所述第二頁面。
基於上述實例,本揭示的實例還提出了一種程式的運行裝置,應用於伺服器101中;如第6圖所示,所述運行裝置600包括:接收模組601、生成模組602以及發送模組603。各個模組的功能具體如下:
接收模組601用於接收表示程式部分代碼的組合資訊。
生成模組602用於根據所述組合資訊,對所述程式部分代碼進行組合,生成多個運行資料。
發送模組603用於當接收到所述運行資料的第一獲取請求時,回應所述第一獲取發送表示啟動所述程式的第一運行資料。
發送模組603用於當接收到所述運行資料第二獲取請求,所述第二獲取請求攜帶跳轉路徑,獲取與所述跳轉路徑對應的第二運行資料並回應所述第二獲取請求發送所述第二運行資料。
第7圖示出了運行裝置500和/或運行裝置600所在的計算設備700的組成結構圖。此計算設備700可以是伺服器。如第7圖所示,該計算設備700包括一個或者多個處理器(CPU)702、通信模組704、記憶體706、使用者介面710,以及用於互聯這些元件的通信匯流排708。
處理器702可通過通信模組704接收和發送資料以實現網路通信和/或本地通信。
使用者介面710包括一個或多個輸出設備712,其包括一個或多個揚聲器和/或一個或多個視覺化顯示器。使用者介面710也包括一個或多個輸入裝置714,其包括例如鍵盤、滑鼠、聲音命令輸入單元或擴音器、觸屏顯示器、觸敏輸入板、姿勢捕獲攝像機或其他輸入按鈕或控制項等。
記憶體706可以是高速隨機存取記憶體,例如DRAM、SRAM、DDR RAM、或其他隨機存取固態存放裝置;或者非易失性記憶體,例如一個或多個磁片存放裝置、光碟存放裝置、快閃記憶體設備,或其他非易失性固態存放裝置。
記憶體706儲存處理器702可執行的指令集,包括:
作業系統716,包括用於處理各種基本系統服務和用於執行硬體相關任務的程式;
應用718,包括用於視頻播放的各種應用程式,這種應用程式能夠實現上述各實例中的處理流程,例如可以包括第5圖所示的運行裝置500中的部分或全部模組,各模組501-505中的至少一個模組可以儲存有機器可執行指令,處理器702通過執行記憶體706中各模組501-505中至少一個模組中的機器可執行指令,進而能夠實現上述各模組501-505中的至少一個模組的功能。
應用718例如可以包括第6圖所示的運行裝置600中的部分或全部模組,各模組601-603中的至少一個模組可以儲存有機器可執行指令,處理器702通過執行記憶體706中各模組601-603中至少一個模組中的機器可執行指令,進而能夠實現上述各模組601-603中的至少一個模組的功能。
需要說明的是,上述各流程和各結構圖中不是所有的步驟和模組都是必須的,可以根據實際的需要忽略某些步驟或模組。各步驟的執行順序不是固定的,可以根據需要進行調整。各模組的劃分僅僅是為了便於描述採用的功能上的劃分,實際實現時,一個模組可以分由多個模組實現,多個模組的功能也可以由同一個模組實現,這些模組可以位於同一個設備中,也可以位於不同的設備中。
各實施例中的硬體模組可以以硬體方式或硬體平台加軟體的方式實現。上述軟體包括機器可讀指令,儲存在非易失性儲存介質中。因此,各實施例也可以體現為軟體產品。
各例中,硬體可以由專門的硬體或執行機器可讀指令的硬體實現。例如,硬體可以為專門設計的永久性電路或邏輯器件(如專用處理器,如FPGA或ASIC)用於完成特定的操作。硬體也可以包括由軟體臨時配置的可程式設計邏輯器件或電路(如包括通用處理器或其它可程式設計處理器)用於執行特定操作。
另外,本揭示的每個實例可以通過由資料處理設備如電腦執行的資料處理程式來實現。顯然,資料處理程式構成了本揭示。此外,通常儲存在一個儲存介質中的資料處理程式通過直接將程式讀取出儲存介質或者通過將程式安裝或複製到資料處理設備的存放裝置(如硬碟和或記憶體)中執行。因此,這樣的儲存介質也構成了本揭示,本揭示還提供了一種非易失性儲存介質,其中儲存有資料處理程式,這種資料處理程式可用於執行本揭示上述方法實例中的任何一種實例。
第5圖和/或第6圖中的模組對應的機器可讀指令可以使電腦上操作的作業系統等來完成這裡描述的部分或者全部操作。非易失性電腦可讀儲存介質可以是插入電腦內的擴展板中所設置的記憶體中或者寫到與電腦相連接的擴展單元中設置的記憶體。安裝在擴展板或者擴展單元上的CPU等可以根據指令執行部分和全部實際操作。
另外,在本揭示各個實例中的裝置及各模組可以集成在一個處理單元中,也可以是各個模組單獨物理存在,也可以兩個或兩個以上裝置或模組集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
100‧‧‧系統
101‧‧‧伺服器
101a‧‧‧CDN伺服器
102‧‧‧網路
103、104‧‧‧終端設備
200、400‧‧‧方法
201~207、401~404、2031、2041‧‧‧步驟
300‧‧‧載入頁面的實例
500、600‧‧‧運行裝置
501‧‧‧第一獲取模組
502‧‧‧第一運行模組
503‧‧‧確定模組
504‧‧‧第二獲取模組
505‧‧‧第二運行模組
601‧‧‧接收模組
602‧‧‧生成模組
603‧‧‧發送模組
700‧‧‧計算設備
702‧‧‧處理器
704‧‧‧通信模組
706‧‧‧記憶體
708‧‧‧通信匯流排
710‧‧‧使用者介面
712‧‧‧輸出設備
714‧‧‧輸入裝置
716‧‧‧作業系統
718‧‧‧應用
[第1圖]為本揭示一個實例的程式的運行方法適用的系統結構示意圖;
[第2A圖]為本揭示一個實例的程式的運行方法的流程圖;
[第2B圖]為本揭示一個實例的程式的運行方法的流程圖;
[第2C圖]為本揭示一個實例的程式的運行方法的流程圖;
[第3圖]為本揭示一個實例的運行分包時頁面的展示實例;
[第4圖]為本揭示一個實例的程式的運行方法的流程圖;
[第5圖]為本揭示一個實例的程式的運行裝置的結構示意圖;
[第6圖]為本揭示一個實例的程式的運行裝置的結構示意圖;
[第7圖]為本申請一個實例的計算設備的硬體的結構示意圖。
200‧‧‧方法
201~205‧‧‧步驟
Claims (15)
- 一種程式的運行方法,包括:回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料,所述第一運行資料至少包括用於啟動程式的代碼和多個控制項對應的頁面跳轉路徑;運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面;回應於所述第一頁面中控制項的第二觸發指令,根據所述控制項對應的第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述控制項對應的第二頁面標識;當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑從所述伺服器獲取第二運行資料,所述第二運行資料包含所述第二頁面標識對應的運行資料;以及運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面,所述第二運行資料包括支援程式的多個功能運行的功能代碼。
- 如請求項1之方法,進一步包括:當所述第二頁面標識對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面標識對應的所述運行資料,並根據所述第二頁面標識對應的運行資料展示所述第二頁面。
- 如請求項1之方法,其中所述從伺服器獲取所述程式的第一運行資料包括:向所述伺服器發送獲取請求,所述獲取請求攜帶所述程式的標識;以及接收所述伺服器回應於所述獲取請求發送的所述第一運行資料。
- 如請求項1之方法,其中所述運行所述第一運行資料包括:通過運行容器運行所述第一運行資料;其中所述運行所述第二運行資料包括:通過所述運行容器運行所述第二運行資料。
- 如請求項4之方法,進一步包括:將獲取到的所述第一運行資料儲存至本機存放區區域中;獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中;以及當將所述第一運行資料發送至所述運行容器中後,執行所述通過所述運行容器運行所述第一運行資料的步驟。
- 如請求項5之方法,其中所述第一運行資料包括所述第一頁面對應的第一邏輯運行資料以及第一視圖運行資料;其中所述獲取所述本機存放區區域中的所述第一運行資料,並將所述第一運行資料發送至所述運行容器中包括:獲取所述本機存放區區域中的所述第一邏輯運行資料並發送至運行容器中;以及當所述運行容器運行所述第一邏輯運行資料後,獲取所述本機存放區區域中的所述第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的第一頁面。
- 如請求項6之方法,進一步包括:回應於所述第二頁面中控制項的第三觸發指令,根據所述第一運行資料,確定所述第二頁面中控制項對應的第二頁面跳轉路徑;當所述第二頁面跳轉路徑對應的運行資料不存在於所述第一運行資料中以及所述第二運行資料中時,根據所述第二頁面跳轉路徑從所述伺服器獲取對應 的第三運行資料,所述第三運行資料包含所述第二頁面跳轉路徑對應的運行資料;以及運行所述第三運行資料,並根據所述第三運行資料展示一第三頁面。
- 如請求項7之方法,進一步包括:當所述第二頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,運行所述第二頁面跳轉路徑對應的運行資料,並根據所述第二頁面跳轉路徑對應的運行資料展示所述第三頁面。
- 如請求項6之方法,其中所述第一運行資料還包括所述多個控制項對應的頁面跳轉路徑對應的第一邏輯運行資料以及第一視圖運行資料;所述方法進一步包括:當確定所述第一頁面跳轉路徑對應的運行資料存在於所述第一運行資料中時,獲取所述本機存放區區域中的與所述第一頁面跳轉路徑對應的第一邏輯運行資料並發送至運行容器中;以及當所述運行容器運行所述第一頁面跳轉路徑對應的第一邏輯運行資料後,獲取所述本機存放區區域中與所述第一頁面跳轉路徑對應的第一視圖運行資料並發送至所述運行容器中,從而展示所述程式的所述第二頁面。
- 如請求項1之方法,其中所述第二運行資料包括與多個頁面跳轉路徑對應的第二邏輯運行資料以及第二視圖運行資料;所述方法進一步包括:將獲取到的第二運行資料儲存至本機存放區區域中;其中所述運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面包括:獲取所述本機存放區區域中的與第一頁面跳轉路徑對應的第二邏輯運行資料並發送至運行容器中;以及 當所述運行容器運行與第一頁面跳轉路徑對應的第二邏輯運行資料後,獲取所述本機存放區區域中與第一頁面跳轉路徑對應的第二視圖運行資料並發送至所述運行容器中,從而展示所述第二頁面。
- 一種程式的運行方法,包括:接收表示程式部分代碼的組合資訊,所述程式部分代碼包括將程式拆分後生成的多個代碼檔;根據所述組合資訊,對所述程式部分代碼中的多個代碼檔進行組合,生成多個運行資料;當接收到終端設備對所述運行資料的第一獲取請求時,回應所述第一獲取請求發送表示啟動所述程式的第一運行資料以使運行所述第一運行資料,根據所述第一運行資料展示所述程式的第一頁面,所述第一運行資料至少包括用於啟動程式的代碼和多個控制項對應的頁面跳轉路徑;以及當接收到所述終端設備對所述運行資料的第二獲取請求時,所述第二獲取請求攜帶第一頁面跳轉路徑,獲取與所述第一頁面跳轉路徑對應的第二運行資料並回應所述第二獲取請求發送所述第二運行資料,以使所述終端設備運行所述第二運行資料,並根據所述第二運行資料展示第二頁面,其中所述終端設備回應於所述第一頁面中控制項的第二觸發指令,根據所述控制項確定對應的所述第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述控制項對應的第二頁面標識,並根據所述第一頁面跳轉路徑請求從伺服器獲取所述第二運行資料。
- 一種程式的運行裝置,包括:第一獲取模組,用於回應於程式的第一觸發指令,從伺服器獲取所述程式的第一運行資料,所述第一運行資料至少包括用於啟動程式的代碼和多個控制項對應的頁面跳轉路徑; 第一運行模組,用於運行所述第一運行資料,並根據所述第一運行資料展示所述程式的第一頁面;確定模組,用於回應於所述第一頁面中控制項的第二觸發指令,根據所述控制項對應的第一頁面跳轉路徑,將所述第一頁面跳轉路徑作為所述控制項對應的第二頁面標識;第二獲取模組,用於當所述第二頁面標識對應的運行資料不存在於所述第一運行資料中時,根據所述第一頁面跳轉路徑從所述伺服器獲取第二運行資料,所述第二運行資料包含所述第二頁面標識對應的運行資料;以及第二運行模組,用於運行所述第二運行資料,並根據所述第二運行資料展示所述第二頁面,所述第二運行資料包括支援程式的多個功能運行的功能代碼。
- 一種程式的運行裝置,包括:接收模組,用於接收表示程式部分代碼的組合資訊,所述程式部分代碼包括將程式拆分後生成的多個代碼檔;生成模組,用於根據所述組合資訊,對所述程式部分代碼中的多個代碼檔進行組合,生成多個運行資料;以及發送模組,用於當接收到終端設備對所述運行資料的第一獲取請求時,回應所述第一獲取發送表示啟動所述程式的第一運行資料以使運行所述第一運行資料,根據所述第一運行資料展示所述程式的第一頁面,所述第一運行資料至少包括用於啟動程式的代碼和多個控制項對應的頁面跳轉路徑;以及用於當接收到所述終端設備對所述運行資料的第二獲取請求時,所述第二獲取請求攜帶第一頁面跳轉路徑,獲取與所述第一頁面跳轉路徑對應的第二運行資料並回應所述第二獲取請求發送所述第二運行資料,以使所述終端設備運行所述第二運行資料,並根據所述第二運行資料展示第二頁面,其中所述終端設備回應於所述第一頁面中控制項的第二觸發指令,根據所述控制項確定對應的所述第一頁面跳轉 路徑,將所述第一頁面跳轉路徑作為所述控制項對應的第二頁面標識,並根據所述第一頁面跳轉路徑請求從伺服器獲取所述第二運行資料。
- 一種計算設備,包括:記憶體;處理器;以及電腦程式,儲存在所述記憶體上並在所述處理器上運行;其中所述處理器執行所述電腦程式時實現如請求項1至11中任一項之方法。
- 一種儲存介質,儲存有一個或多個程式,所述一個或多個程式包括指令,所述指令當由計算設備執行時,使得所述計算設備執行如請求項1至11中任一項之方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810731500.0A CN109165050B (zh) | 2018-07-05 | 2018-07-05 | 程序的运行方法、装置、计算设备以及存储介质 |
CN201810731500.0 | 2018-07-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202006538A TW202006538A (zh) | 2020-02-01 |
TWI708185B true TWI708185B (zh) | 2020-10-21 |
Family
ID=64897388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108117656A TWI708185B (zh) | 2018-07-05 | 2019-05-22 | 程式的運行方法及裝置、計算設備以及儲存介質 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200379779A1 (zh) |
EP (1) | EP3739447A4 (zh) |
CN (1) | CN109165050B (zh) |
TW (1) | TWI708185B (zh) |
WO (1) | WO2020007146A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196930B (zh) * | 2018-01-18 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置、存储介质和计算机设备 |
CN109165050B (zh) * | 2018-07-05 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 程序的运行方法、装置、计算设备以及存储介质 |
CN110083363B (zh) * | 2019-04-22 | 2022-04-01 | 珠海网博信息科技股份有限公司 | 一种Linux内核动态注入方式截取无线数据包的方法 |
CN110333859B (zh) * | 2019-05-06 | 2023-05-30 | 北京字节跳动网络技术有限公司 | 页面创建方法、装置、电子设备和计算机可读存储介质 |
CN110069417B (zh) * | 2019-05-07 | 2020-07-31 | 北京字节跳动网络技术有限公司 | A/b测试方法和装置 |
CN112579048B (zh) * | 2019-09-30 | 2023-09-08 | 腾讯科技(深圳)有限公司 | 小程序集成方法、装置、电子设备及存储介质 |
CN110990733B (zh) * | 2019-10-31 | 2023-03-17 | 合肥美的电冰箱有限公司 | 页面加载方法、装置、电子设备及介质 |
CN111026438B (zh) * | 2019-11-29 | 2023-08-04 | 百度在线网络技术(北京)有限公司 | 小程序包和页面关键信息的提取方法、装置、设备及介质 |
CN112685097B (zh) * | 2020-12-28 | 2024-04-16 | 北京达佳互联信息技术有限公司 | 一种数据处理方法和装置 |
CN113760431B (zh) * | 2021-08-30 | 2024-03-29 | 百度在线网络技术(北京)有限公司 | 应用程序的控制方法、装置、电子设备及可读存储介质 |
CN113849248B (zh) * | 2021-09-28 | 2023-09-26 | 北京京东振世信息技术有限公司 | 小程序加载方法、设备、存储介质及程序产品 |
CN114063958B (zh) * | 2021-11-16 | 2024-08-16 | 上海哔哩哔哩科技有限公司 | 页面分屏显示方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080178298A1 (en) * | 2001-02-14 | 2008-07-24 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US20130144928A1 (en) * | 2011-12-05 | 2013-06-06 | Microsoft Corporation | Minimal download and simulated page navigation features |
TW201401071A (zh) * | 2012-04-20 | 2014-01-01 | Benefitfocus Com Inc | 用以經由遠端方法呼叫而致能多個不同網頁之樣式及裝飾的系統及方法 |
TW201502986A (zh) * | 2013-07-09 | 2015-01-16 | Tencent Tech Shenzhen Co Ltd | 使用於瀏覽器網頁的應用程式訊息通知顯示方法、相關設備與系統 |
CN108228305A (zh) * | 2018-02-02 | 2018-06-29 | 广东欧珀移动通信有限公司 | 应用页面的显示方法、装置、存储介质及电子设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603375B2 (en) * | 2005-03-30 | 2009-10-13 | Siebel Systems, Inc. | System and method for generating a custom application |
US9553947B2 (en) * | 2007-07-18 | 2017-01-24 | Google Inc. | Embedded video playlists |
CN102135892B (zh) * | 2010-01-22 | 2015-03-04 | 广州华多网络科技有限公司 | 应用程序运行方法、装置及系统 |
US20110185301A1 (en) * | 2010-01-27 | 2011-07-28 | Mark Geller | Providing sensory information based on detected events |
CN102480558A (zh) * | 2010-11-30 | 2012-05-30 | 上海博路信息技术有限公司 | 一种手机游戏程序的快速运行方法 |
WO2012146985A2 (en) * | 2011-04-28 | 2012-11-01 | Approxy Inc. Ltd. | Adaptive cloud-based application streaming |
US20130278622A1 (en) * | 2012-04-23 | 2013-10-24 | Netspectrum Inc. | Secure and Authenticated Transactions with Mobile Devices |
US9529924B2 (en) * | 2012-07-31 | 2016-12-27 | Apple Inc. | User interface providing localized search capabilities |
US9210203B2 (en) * | 2012-10-02 | 2015-12-08 | Nextbit Systems Inc. | Resource based mobile device application streaming |
US20150142912A1 (en) * | 2013-11-19 | 2015-05-21 | Intel-Ge Care Innovations Llc | System and method for providing isolation boundaries between regulated medical applications and unregulated, non-medical applications |
CN104699501B (zh) * | 2015-01-15 | 2018-02-16 | 腾讯科技(深圳)有限公司 | 一种运行应用程序的方法及装置 |
WO2017070179A1 (en) * | 2015-10-19 | 2017-04-27 | Synchrony Bank | System and method for integrating data from a remote server with a client application |
US10922089B2 (en) * | 2016-09-22 | 2021-02-16 | Groupon, Inc. | Mobile service applications |
CN108108205B (zh) * | 2016-11-25 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 应用程序页面处理方法和装置 |
CN106777184A (zh) * | 2016-12-22 | 2017-05-31 | 北京猎豹移动科技有限公司 | 一种页面加载方法、装置及电子设备 |
US10168998B2 (en) * | 2017-03-20 | 2019-01-01 | Google Llc | Automated interface design |
US10348658B2 (en) * | 2017-06-15 | 2019-07-09 | Google Llc | Suggested items for use with embedded applications in chat conversations |
CN108196930B (zh) * | 2018-01-18 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置、存储介质和计算机设备 |
CN109165050B (zh) * | 2018-07-05 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 程序的运行方法、装置、计算设备以及存储介质 |
-
2018
- 2018-07-05 CN CN201810731500.0A patent/CN109165050B/zh active Active
-
2019
- 2019-05-22 TW TW108117656A patent/TWI708185B/zh active
- 2019-05-31 EP EP19831565.7A patent/EP3739447A4/en active Pending
- 2019-05-31 WO PCT/CN2019/089555 patent/WO2020007146A1/zh unknown
-
2020
- 2020-08-18 US US16/996,762 patent/US20200379779A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080178298A1 (en) * | 2001-02-14 | 2008-07-24 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US20130144928A1 (en) * | 2011-12-05 | 2013-06-06 | Microsoft Corporation | Minimal download and simulated page navigation features |
TW201401071A (zh) * | 2012-04-20 | 2014-01-01 | Benefitfocus Com Inc | 用以經由遠端方法呼叫而致能多個不同網頁之樣式及裝飾的系統及方法 |
TW201502986A (zh) * | 2013-07-09 | 2015-01-16 | Tencent Tech Shenzhen Co Ltd | 使用於瀏覽器網頁的應用程式訊息通知顯示方法、相關設備與系統 |
CN108228305A (zh) * | 2018-02-02 | 2018-06-29 | 广东欧珀移动通信有限公司 | 应用页面的显示方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109165050A (zh) | 2019-01-08 |
EP3739447A1 (en) | 2020-11-18 |
TW202006538A (zh) | 2020-02-01 |
CN109165050B (zh) | 2020-10-13 |
WO2020007146A1 (zh) | 2020-01-09 |
EP3739447A4 (en) | 2021-03-10 |
US20200379779A1 (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI708185B (zh) | 程式的運行方法及裝置、計算設備以及儲存介質 | |
US20210216700A1 (en) | Information Processing Method and System | |
CN109408136B (zh) | 信息处理方法、装置、存储介质及电子设备 | |
US9384101B2 (en) | Web application architecture | |
US10194288B2 (en) | Sticker distribution system for messaging apps | |
US8407584B1 (en) | Stable and secure use of content scripts in browser extensions | |
CN111158818A (zh) | 一种页面渲染方法和装置 | |
CN103914205B (zh) | 一种智能终端的文件缩略图展示方法和装置 | |
Wang et al. | The research of Android System architecture and application programming | |
US9607332B1 (en) | Embedded web application gallery | |
US10684838B2 (en) | Dynamic application deployment | |
WO2020206691A1 (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN110968331B (zh) | 应用程序运行的方法和装置 | |
US10148790B2 (en) | Deployment of integrative HTML-based engine from an edge server | |
US20210109644A1 (en) | Display method when application is exited and terminal | |
US9772930B2 (en) | Techniques for evaluating applications through use of an auxiliary application | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
US11438403B2 (en) | Page presentation method and system, computer system, and computer readable medium | |
CN108319474B (zh) | 一种页面信息生成方法、装置和设备 | |
CN113312572A (zh) | 一种资源处理方法、装置、存储介质及电子设备 | |
CN112764746A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR101553539B1 (ko) | 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
CN113315687B (zh) | 代理网络管理方法、装置、存储介质以及终端 | |
Garg et al. | Xml based lucid web operating system | |
CN117931441A (zh) | 资源处理方法、装置以及电子终端 |