国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      模塊加載方法及裝置的制造方法

      文檔序號:10552726閱讀:198來源:國知局
      模塊加載方法及裝置的制造方法
      【專利摘要】本公開是關(guān)于模塊加載方法及裝置。該方法包括:在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;獲取所述第一目標(biāo)模塊的狀態(tài)信息;根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。該技術(shù)方案,可以從緩存中或者遠(yuǎn)端獲取到加載該第一目標(biāo)模塊所需的加載數(shù)據(jù),從而直接、快速地加載該第一目標(biāo)模塊,將該第一目標(biāo)模塊進(jìn)行展示和渲染,而不用通過專門的用于管理待加載模塊的公共消息模塊來加載該第一目標(biāo)模塊,從而降低了時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升了模塊的擴(kuò)展性。
      【專利說明】
      模塊加載方法及裝置
      技術(shù)領(lǐng)域
      [0001 ]本公開涉及模塊加載技術(shù)領(lǐng)域,尤其涉及模塊加載方法及裝置。
      【背景技術(shù)】
      [0002]目前,現(xiàn)在越來越多的終端應(yīng)用采用html5(簡稱H5,萬維網(wǎng)的核心語言、標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用超文本標(biāo)記語言(HTML)的第五次重大修改)來實現(xiàn)越來越多的功能,而在一個H5應(yīng)用內(nèi)頁面往往會涉及到多個模塊,各個模塊可以彼此依賴,也可以相互獨立,但在進(jìn)行模塊整合時,常常遇到性能,還有擴(kuò)展性方面的問題。為了解決這類問題,相關(guān)技術(shù)的解決方案是將各模塊的交互工作統(tǒng)一交由一個獨立的公共消息模塊完成,從而降低多個模塊間的耦合,使軟件系統(tǒng)易于維護(hù),但這種方案仍然設(shè)計時序問題,和擴(kuò)展性問題,如果模塊的時序更改了,就需要重新調(diào)整公共消息模塊中的時序,而如果某個模塊增加了子模塊,則需要重新調(diào)整公共消息模塊中的模塊、且調(diào)整工作較大,因而模塊的操作非常不便。

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

      [0003]本公開實施例提供了模塊加載方法及裝置。所述技術(shù)方案如下:
      [0004]根據(jù)本公開實施例的第一方面,提供一種模塊加載方法,包括:
      [0005]在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0006]獲取所述第一目標(biāo)模塊的狀態(tài)信息;
      [0007]根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0008]根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0009]在一個實施例中,所述獲取所述第一目標(biāo)模塊的狀態(tài)信息,包括:
      [0010]根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0011 ]根據(jù)確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0012]在一個實施例中,所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0013]當(dāng)所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0014]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者
      [0015]當(dāng)所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0016]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0017]在一個實施例中,所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0018]當(dāng)所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0019]通過所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0020]調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0021 ]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0022]在一個實施例中,所述方法還包括:
      [0023]在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0024]當(dāng)所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0025]在一個實施例中,所述當(dāng)所述目標(biāo)網(wǎng)址未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,包括:
      [0026]在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0027]根據(jù)本公開實施例的第二方面,提供一種模塊加載裝置,包括:
      [0028]確定模塊,用于在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0029]第一獲取模塊,用于獲取所述確定模塊確定出的所述第一目標(biāo)模塊的狀態(tài)信息;
      [0030]第二獲取模塊,用于根據(jù)所述第一獲取模塊獲取到的所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0031 ]加載模塊,用于根據(jù)所述第二獲取模塊獲取到的所述加載數(shù)據(jù),加載所述第一目標(biāo)豐吳塊。
      [0032]在一個實施例中,所述第一獲取模塊包括:
      [0033]第一確定子模塊,用于根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0034]第二確定子模塊,用于根據(jù)所述第一確定子模塊確定出的確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0035]在一個實施例中,所述第二獲取模塊包括:
      [0036]第一調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0037]讀取子模塊,用于通過所述第一調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者
      [0038]第二調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0039]讀取子模塊,用于通過所述第二調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0040]在一個實施例中,所述第二獲取模塊包括:
      [0041]第三調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0042]發(fā)送子模塊,用于通過所述第三調(diào)用子模塊調(diào)用的所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0043]第四調(diào)用子模塊,用于調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0044]讀取子模塊,用于通過所述第四調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0045]在一個實施例中,所述裝置還包括:
      [0046]判斷模塊,用于在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0047]觸發(fā)模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0048]在一個實施例中,所述觸發(fā)模塊包括:
      [0049]觸發(fā)子模塊,用于在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0050]根據(jù)本公開實施例的第三方面,提供了一種模塊加載裝置,包括:
      [0051]處理器;
      [0052]用于存儲處理器可執(zhí)行指令的存儲器;
      [0053]其中,所述處理器被配置為:
      [0054]在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0055]獲取所述第一目標(biāo)模塊的狀態(tài)信息;
      [0056]根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0057]根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0058]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
      [0059]本公開的實施例提供的技術(shù)方案,可以根據(jù)網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊,進(jìn)而根據(jù)該第一目標(biāo)模塊的狀態(tài)信息,從緩存中或者遠(yuǎn)端獲取到相應(yīng)的加載數(shù)據(jù),從而使得設(shè)備中所安裝的瀏覽器能夠根據(jù)該加載數(shù)據(jù)直接、快速地加載該第一目標(biāo)模塊,將該第一目標(biāo)模塊進(jìn)行展示和渲染,而不用通過專門的用于管理待加載模塊的公共消息模塊來加載該第一目標(biāo)模塊,從而降低了模塊加載時,時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升了模塊的擴(kuò)展性。
      [0060]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
      【附圖說明】
      [0061]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
      [0062]圖1是根據(jù)一示例性實施例示出的一種模塊加載方法的流程圖。
      [0063]圖2是根據(jù)一示例性實施例示出的另一種模塊加載方法的流程圖。
      [0064]圖3A是根據(jù)一示例性實施例一示出的又一種模塊加載方法的流程圖。
      [0065]圖3B是根據(jù)一示例性實施例一示出的再一種模塊加載方法的流程圖。
      [0066]圖4是根據(jù)一示例性實施例一示出的再一種模塊加載方法的流程圖。
      [0067]圖5是根據(jù)一示例性實施例一示出的再一種模塊加載方法的流程圖。
      [0068]圖6是根據(jù)一示例性實施例一示出的再一種模塊加載方法的流程圖。
      [0069]圖7是根據(jù)一示例性實施例示出的一種模塊加載裝置的框圖。
      [0070]圖8是根據(jù)一示例性實施例示出的另一種模塊加載裝置的框圖。
      [0071 ]圖9A是根據(jù)一示例性實施例示出的又一種模塊加載裝置的框圖。
      [0072]圖9B是根據(jù)一示例性實施例示出的再一種模塊加載裝置的框圖。
      [0073]圖10是根據(jù)一示例性實施例示出的再一種模塊加載裝置的框圖。
      [0074]圖11是根據(jù)一示例性實施例示出的再一種模塊加載裝置的框圖。
      [0075]圖12是根據(jù)一示例性實施例示出的再一種模塊加載裝置的框圖。
      [0076]圖13是根據(jù)一示例性實施例示出的適用于模塊加載裝置的框圖。
      【具體實施方式】
      [0077]這里將詳細(xì)地對示例性實施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
      [0078]目前,越來越多的終端應(yīng)用采用html5來實現(xiàn)越來越多的功能,而在一個H5應(yīng)用內(nèi)頁面往往會涉及到多個模塊,各個模塊可以彼此依賴,也可以相互獨立,但在進(jìn)行模塊整合時,常常遇到性能,還有擴(kuò)展性方面的問題。為了解決這類問題,相關(guān)技術(shù)的解決方案是將各模塊的交互工作統(tǒng)一交由一個獨立的公共消息模塊完成,從而降低多個模塊間的耦合,使軟件系統(tǒng)易于維護(hù),但這種方案仍然設(shè)計時序問題,和擴(kuò)展性問題,如果模塊的時序更改了,就需要重新調(diào)整公共消息模塊中的時序,而如果某個模塊增加了子模塊,則需要重新調(diào)整公共消息模塊中的模塊、且調(diào)整工作較大,因而模塊的操作非常不便。
      [0079]為了解決上述技術(shù)問題,本公開實施例提供了一種模塊加載方法,該方法可用于模塊加載程序、系統(tǒng)或裝置中,且該方法對應(yīng)的執(zhí)行主體可以是用戶攜帶的終端,如圖1所示,該方法包括步驟SI OI至步驟SI 04:
      [0080]在步驟SlOl中,在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0081]當(dāng)設(shè)備上所安裝的瀏覽器接收到網(wǎng)址訪問請求時,可以根據(jù)該目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁所需要顯示的內(nèi)容,來確定所需要加載的第一目標(biāo)模塊,查找到該第一目標(biāo)模塊的enter方法,從而通過加載相應(yīng)的模塊來完成網(wǎng)頁的加載、實現(xiàn)用戶的訪問需求,且該第一目標(biāo)模塊可以是加載該目標(biāo)網(wǎng)頁時所需要最先加載的一個或多個html5模塊,例如,該第一目標(biāo)模塊可以是需要加載的某個網(wǎng)頁中的對話框、顯示框、按鈕、需要顯示的文字、圖片、視頻、動畫等一個或多個元素對應(yīng)的模塊,其中,該第一目標(biāo)模塊的enter方法,傳入了請求加載的第一目標(biāo)模塊的IDGdentificat1n,身份標(biāo)識)(可以是該第一目標(biāo)模塊對應(yīng)的加載數(shù)據(jù)的緩存地址)、其回調(diào)函數(shù)和執(zhí)行方式(即同步加載、或者異步加載)。
      [0082]在步驟S102中,獲取所述第一目標(biāo)模塊的狀態(tài)信息;
      [0083]該第一目標(biāo)模塊的狀態(tài)信息可以是:未緩存加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)、正在緩存該加載數(shù)據(jù)、該加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0084]在步驟S103中,根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0085]在步驟S104中,根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0086]根據(jù)該第一目標(biāo)模塊的狀態(tài)信息,可以從緩存中或者遠(yuǎn)端獲取到相應(yīng)的加載數(shù)據(jù),從而使得設(shè)備中所安裝的瀏覽器能夠根據(jù)該加載數(shù)據(jù)直接、快速地加載該第一目標(biāo)模塊,將該第一目標(biāo)模塊進(jìn)行展示和渲染,而不用通過專門的用于管理待加載模塊的公共消息模塊來加載該第一目標(biāo)模塊,從而降低了模塊加載時,時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升了模塊的擴(kuò)展性。
      [0087]如圖2所示,在一個實施例中,上述步驟S102可被執(zhí)行為:
      [0088]在步驟Al中,根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0089]在步驟A2中,根據(jù)確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài),該第一目標(biāo)模塊的標(biāo)識就是該第一目標(biāo)模塊的ID,也即該第一目標(biāo)模塊對應(yīng)的加載數(shù)據(jù)的緩存地址。
      [0090]根據(jù)第一目標(biāo)模塊的標(biāo)識,瀏覽器可以通過查找該第一目標(biāo)對應(yīng)的加載數(shù)據(jù)所在的緩存地址來確定緩存中是否緩存有該加載數(shù)據(jù),具體地:如果該緩存地址中未緩存有該加載數(shù)據(jù),則該第一目標(biāo)模塊的狀態(tài)信息就是未緩存加載數(shù)據(jù);如果該緩存地址中有該加載數(shù)據(jù),則進(jìn)一步判斷該加載數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量和該加載數(shù)據(jù)的文件格式中是否為.tmp文件(即臨時文件),如果該加載數(shù)據(jù)的數(shù)據(jù)量已達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量、且該加載數(shù)據(jù)的文件格式不是.tmp文件,則說明該第一目標(biāo)模塊的狀態(tài)信息為加載數(shù)據(jù)已完成緩存,相應(yīng)地,如果該加載數(shù)據(jù)的數(shù)據(jù)量未達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量、或者該加載數(shù)據(jù)的文件格式中為.tmp文件,則說明該第一目標(biāo)模塊的狀態(tài)信息為未緩存加載數(shù)據(jù)。
      [0091]如圖3A所示,在一個實施例中,上述步驟S103可被執(zhí)行為:
      [0092]在步驟BI中,當(dāng)所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0093]在步驟B2中,通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);
      [0094]當(dāng)該狀態(tài)信息為加載數(shù)據(jù)已完成緩存時,說明加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)已經(jīng)完整的被緩存了,進(jìn)而說明加載該第一目標(biāo)模塊時,可以直接調(diào)用該第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),以使該回調(diào)函數(shù)能夠根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而回傳給瀏覽器,從而使得瀏覽器能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載,同時由于該加載數(shù)據(jù)已完成緩存,因而,可以避免向遠(yuǎn)端(如服務(wù)器)請求獲取該加載數(shù)據(jù),避免占用額外的帶寬。
      [0095]或者
      [0096]如圖3B所示,在一個實施例中,上述步驟S103可被執(zhí)行為:
      [0097]在步驟B3中,當(dāng)所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0098]在步驟B2中,通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0099]當(dāng)該狀態(tài)信息為正在緩存加載數(shù)據(jù)時,說明加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)尚未被完整的緩存,因而,可以等待預(yù)設(shè)時長,直至該狀態(tài)信息由正在緩存該加載數(shù)據(jù)轉(zhuǎn)換為該加載數(shù)據(jù)已完成緩存、該加載數(shù)據(jù)已被完整的緩存,進(jìn)而調(diào)用該第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),以使該回調(diào)函數(shù)能夠根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而回傳給瀏覽器,從而使得瀏覽器能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)在不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載,同時由于該加載數(shù)據(jù)最終被完整的緩存了,因而,可以避免向遠(yuǎn)端(如服務(wù)器)請求獲取該加載數(shù)據(jù),避免占用額外的帶寬。
      [0100]如圖4所示,在一個實施例中,上述步驟S103可被執(zhí)行為:
      [0101]在步驟B4中,當(dāng)所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0102]在步驟B5中,通過所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0103]在步驟B6中,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0104]在步驟B2中,通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0105]當(dāng)該狀態(tài)信息為未緩存加載數(shù)據(jù)時,本地并沒有存儲該加載數(shù)據(jù),因而,可以調(diào)用設(shè)備中運行的目標(biāo)后臺進(jìn)程(module factory),進(jìn)而通過目標(biāo)后臺進(jìn)程,向目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取加載數(shù)據(jù)的請求,并在獲取到加載數(shù)據(jù)之后,將加載數(shù)據(jù)存儲至緩存中即存儲在該第一目標(biāo)模塊的ID所指向的緩存地址,以使得瀏覽器仍然能夠調(diào)用第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),并控制該回調(diào)函數(shù)根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而將該加載數(shù)據(jù)回傳給瀏覽器,從而使得瀏覽器能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)在不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載。
      [0106]如圖5所示,在一個實施例中,所述方法還包括:
      [0107]在步驟S501中,在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0108]在步驟S502中,當(dāng)所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載,其中,第二目標(biāo)模塊可以是一個或多個與該第一目標(biāo)模塊級別相同的模塊、和/或下級子模塊(如可以是第一目標(biāo)模塊的子模塊)。
      [0109]在加載完該第一目標(biāo)模塊時,如果該目標(biāo)網(wǎng)頁沒有被加載完成,則可以觸發(fā)該目標(biāo)完成事件,即通過該compete事件通知后續(xù)待加載模塊(即該第二目標(biāo)模塊),以通過該第二目標(biāo)模塊的回調(diào)函數(shù)來獲取第二目標(biāo)模塊的加載數(shù)據(jù),從而快速地完成第二目標(biāo)模塊的加載,且由于在加載任何模塊時,均不需要依賴任何公共消息模塊,因而降低了模塊加載時,時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升模塊的擴(kuò)展性;
      [0110]例如:a.當(dāng)模塊執(zhí)行的時序發(fā)生改變時,如之前模塊2的執(zhí)行依賴于模塊I的結(jié)果,但此時變成了模塊2依賴于模塊3,模塊3依賴于模塊I,則僅需要修改模塊I和模塊3的compete事件就好,使得模塊I完成后通過其compete事件通知模塊3,模塊3完成后通過其compete事件通知模塊2即可,在此過程中,受影響的只是上層的這兩模塊,只要重新對這兩個模塊進(jìn)行調(diào)整就好,并不需要對模塊2進(jìn)行調(diào)整,且由于不依賴公共消息模塊,因而也不要調(diào)整公共消息模塊中的時序,所以,時序調(diào)整更高效;
      [0111]b.當(dāng)模塊需要擴(kuò)展時,如之前模塊I執(zhí)行后,模塊I的compete會去調(diào)用模塊2中的回調(diào)函數(shù)以加載模塊2,但此時模塊2中需要增加新子模塊,如模塊2.1,模塊2.2,則只需要對模塊2進(jìn)行修改就好,不需要修改模塊I的內(nèi)容,因而,模塊的擴(kuò)展性更好,不需要依賴于公共消息模塊來進(jìn)行統(tǒng)一的調(diào)整,減小了對公共消息模塊的依賴。
      [0112]另外,加載該第二目標(biāo)模塊的過程與加載的第一目標(biāo)模塊的過程相同,該第二目標(biāo)模塊也有相應(yīng)的enter方法,傳入了請求加載的第二目標(biāo)模塊的ID( identif icat1n,身份標(biāo)識)(可以是該第一目標(biāo)模塊對應(yīng)的加載數(shù)據(jù)的緩存地址)、回調(diào)函數(shù)和執(zhí)行方式,且瀏覽器依然可以通過該第二目標(biāo)模塊的回調(diào)函數(shù)來獲取第二目標(biāo)模塊的加載數(shù)據(jù),從而快速地完成第二目標(biāo)模塊的加載,同樣地,如果加載完第二目標(biāo)模塊之后,該目標(biāo)網(wǎng)頁未被加載完成,則仍然會觸發(fā)該第二目標(biāo)模塊的compete事件,以觸發(fā)后續(xù)待加載的模塊的回調(diào)函數(shù),從而完成后續(xù)待加載模塊的加載,依次類推,直至將該目標(biāo)網(wǎng)頁加載完成,具體的加載過程同上,此處不再贅述。
      [0113]如圖6所示,在一個實施例中,上述步驟S502可被執(zhí)行為:
      [0114]在步驟Cl中,在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載,其中,由于第二目標(biāo)模塊可以是一個或多個與該第一目標(biāo)模塊級別相同的模塊、和/或下級子模塊(如可以是第一目標(biāo)模塊的子模塊),因而,該至少兩個待加載模塊可以均是與該第二目標(biāo)模塊級別相同的后續(xù)待加載模塊,或者均是該第一目標(biāo)模塊的子模塊,或者既包含與該第二目標(biāo)模塊級別相同的模塊又包含該第一目標(biāo)模塊的子模塊。
      [0115]當(dāng)?shù)诙繕?biāo)模塊為多個(即第二目標(biāo)模塊包括至少兩個待加載模塊)時,該目標(biāo)模塊的compete事件同時綁定的是至少兩個待加載模塊的回調(diào)函數(shù),因而,如果加載完該第一目標(biāo)模塊,則可以觸發(fā)該第一目標(biāo)模塊的compete事件,以分別調(diào)用每個待加載模塊的回調(diào)函數(shù)來通過異步加載方式加載該至少兩個待加載模塊,從而能夠同時對該至少兩個待加載模塊進(jìn)行加載,進(jìn)而快速地完成所有模塊的加載,提高模塊的加載效率。例如:模塊I是第一目標(biāo)模塊,模塊2和模塊3是該第二目標(biāo)模塊中的至少兩個待加載模塊,且模塊2和模塊3是在加載完模塊I之后,需要繼續(xù)加載的兩個與模塊I級別相同的兩個模塊,則如果加載完模塊I,就觸發(fā)模塊I的compete事件,并通過異步加載方式來同時調(diào)用模塊2和模塊3的回調(diào)函數(shù),從而實現(xiàn)同時加載模塊2和模塊3 ;當(dāng)然,在該例中,如果該至少兩個待加載模塊中還包括模塊I的子模塊I.I和子模塊1.2,此時,如果子模塊1.1和子模塊1.2是并列的關(guān)系,并不相互依賴,貝lJ在觸發(fā)模塊I的compete事件以通過異步加載方式來同時調(diào)用模塊2和模塊3的回調(diào)函數(shù)同時,也會同時異步加載觸發(fā)子模塊1.1和子模塊1.2,以同時開始加載子模塊1.1和子模塊I.2;如果子模塊1.1和子模塊1.2是依賴的關(guān)系,并不相互并列,如子模塊1.2依賴子模塊1.1,則在觸發(fā)模塊I的compete事件以通過異步加載方式來同時調(diào)用模塊2和模塊3的回調(diào)函數(shù)同時,僅會異步加載觸發(fā)子模塊I.I,以在完成子模塊I.I的加載之后,再調(diào)用子模塊1.2的回調(diào)函數(shù),完成子模塊1.2的記載,此時,子模塊1.2和子模塊1.1的加載關(guān)系就是同步加載。
      [0116]對應(yīng)本公開實施例提供的上述模塊加載方法,本公開實施例還提供一種模塊加載裝置,如圖7所示,該裝置包括:
      [0117]確定模塊7OI,用于在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0118]當(dāng)設(shè)備上所安裝的瀏覽器接收到網(wǎng)址訪問請求時,確定模塊701可以根據(jù)該目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁所需要顯示的內(nèi)容,來確定所需要加載的第一目標(biāo)模塊,查找到該第一目標(biāo)模塊的enter方法,從而通過加載相應(yīng)的模塊來完成網(wǎng)頁的加載、實現(xiàn)用戶的訪問需求,且該第一目標(biāo)模塊可以是加載該目標(biāo)網(wǎng)頁時所需要最先加載的一個或多個html5模塊。
      [0119]第一獲取模塊702,用于獲取所述確定模塊確定出的所述第一目標(biāo)模塊的狀態(tài)信息;
      [0120]該第一目標(biāo)模塊的狀態(tài)信息可以是:未緩存加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)、正在緩存該加載數(shù)據(jù)、該加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0121 ]第二獲取模塊703,用于根據(jù)所述第一獲取模塊獲取到的所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0122]加載模塊704,用于根據(jù)所述第二獲取模塊獲取到的所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0123]根據(jù)第一獲取模塊獲取到的該第一目標(biāo)模塊的狀態(tài)信息,可以從緩存中或者遠(yuǎn)端獲取到相應(yīng)的加載數(shù)據(jù),從而使得加載模塊704能夠根據(jù)該加載數(shù)據(jù)直接、快速地加載該第一目標(biāo)模塊,將該第一目標(biāo)模塊進(jìn)行展示和渲染,而不用通過專門的用于管理待加載模塊的公共消息模塊來加載該第一目標(biāo)模塊,從而降低了模塊加載時,時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升了模塊的擴(kuò)展性。
      [0124]如圖8所示,在一個實施例中,所述第一獲取模塊702包括:
      [0125]第一確定子模塊7021,用于根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0126]第二確定子模塊7022,用于根據(jù)所述第一確定子模塊7021確定出的確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài),該第一目標(biāo)模塊的標(biāo)識就是該第一目標(biāo)模塊的ID,也即該第一目標(biāo)模塊對應(yīng)的加載數(shù)據(jù)的緩存地址。
      [0127]根據(jù)第一目標(biāo)模塊的標(biāo)識,第一確定子模塊7021可以通過查找該第一目標(biāo)對應(yīng)的加載數(shù)據(jù)所在的緩存地址來確定緩存中是否緩存有該加載數(shù)據(jù),具體地:如果該緩存地址中未緩存有該加載數(shù)據(jù),則第二確定子模塊7022可以確定該第一目標(biāo)模塊的狀態(tài)信息就是未緩存加載數(shù)據(jù);如果該緩存地址中有該加載數(shù)據(jù),則第二確定子模塊7022可以確定進(jìn)一步判斷該加載數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量和該加載數(shù)據(jù)的文件格式中是否為.tmp文件(即臨時文件),如果該加載數(shù)據(jù)的數(shù)據(jù)量已達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量、且該加載數(shù)據(jù)的文件格式不是.tmp文件,則第二確定子模塊7022可以確定該第一目標(biāo)模塊的狀態(tài)信息為加載數(shù)據(jù)已完成緩存,相應(yīng)地,如果該加載數(shù)據(jù)的數(shù)據(jù)量未達(dá)到完整的加載數(shù)據(jù)所對應(yīng)的預(yù)設(shè)數(shù)據(jù)量、或者該加載數(shù)據(jù)的文件格式中為.tmp文件,則第二確定子模塊7022可以確定該第一目標(biāo)模塊的狀態(tài)信息為未緩存加載數(shù)據(jù)。
      [0128]如圖9A所示,在一個實施例中,所述第二獲取模塊703包括:
      [0129]第一調(diào)用子模塊7031,用于當(dāng)所述第一獲取模塊702獲取到的所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0130]讀取子模塊7032,用于通過所述第一調(diào)用子模塊7031調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);
      [0131]當(dāng)?shù)谝猾@取模塊702獲取到的該狀態(tài)信息為加載數(shù)據(jù)已完成緩存時,說明加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)已經(jīng)完整的被緩存了,進(jìn)而說明加載該第一目標(biāo)模塊時,可以直接通過第一調(diào)用子模塊7031調(diào)用該第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),以使該回調(diào)函數(shù)能夠根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而回傳給瀏覽器,從而使得讀取子模塊7032能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載,同時由于該加載數(shù)據(jù)已完成緩存,因而,可以避免向遠(yuǎn)端(如服務(wù)器)請求獲取該加載數(shù)據(jù),避免占用額外的帶寬。
      [0132]或者
      [0133]如圖9B所示,在一個實施例中,所述第二獲取模塊703包括:
      [0134]第二調(diào)用子模塊7034,用于當(dāng)所述第一獲取模塊702獲取到的所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0135]讀取子模塊7032,用于通過所述第二調(diào)用子模塊7034調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0136]當(dāng)?shù)谝猾@取模塊702獲取到的該狀態(tài)信息為正在緩存加載數(shù)據(jù)時,說明加載該第一目標(biāo)模塊所需的加載數(shù)據(jù)尚未被完整的緩存,因而,第二調(diào)用子模塊7034可以等待預(yù)設(shè)時長,直至該狀態(tài)信息由正在緩存該加載數(shù)據(jù)轉(zhuǎn)換為該加載數(shù)據(jù)已完成緩存、該加載數(shù)據(jù)已被完整的緩存,進(jìn)而調(diào)用該第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),以使該回調(diào)函數(shù)能夠根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而回傳給瀏覽器,從而使得讀取子模塊7032能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)在不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載,同時由于該加載數(shù)據(jù)最終被完整的緩存了,因而,可以避免向遠(yuǎn)端(如服務(wù)器)請求獲取該加載數(shù)據(jù),避免占用額外的帶寬。
      [0137]如圖10所示,在一個實施例中,所述第二獲取模塊703包括:
      [0138]第三調(diào)用子模塊7035,用于當(dāng)所述第一獲取模塊702獲取到的所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0139]發(fā)送子模塊7036,用于通過所述第三調(diào)用子模塊7035調(diào)用的所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0140]第四調(diào)用子模塊7037,用于調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0141]讀取子模塊7032,用于通過所述第四調(diào)用子模塊7037調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0142]當(dāng)?shù)谝猾@取模塊702獲取到的該狀態(tài)信息為未緩存加載數(shù)據(jù)時,本地并沒有存儲該加載數(shù)據(jù),因而,第三調(diào)用子模塊7035可以調(diào)用設(shè)備中運行的目標(biāo)后臺進(jìn)程(modulefactory),進(jìn)而發(fā)送子模塊7036可以通過目標(biāo)后臺進(jìn)程,向目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取加載數(shù)據(jù)的請求,并在獲取到加載數(shù)據(jù)之后,將加載數(shù)據(jù)存儲至緩存中即存儲在該第一目標(biāo)模塊的ID所指向的緩存地址,以使得第四調(diào)用子模塊7037仍然能夠調(diào)用第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù),并控制該回調(diào)函數(shù)根據(jù)該第一目標(biāo)模塊的標(biāo)識,獲取到緩存中的該加載數(shù)據(jù),進(jìn)而將該加載數(shù)據(jù)回傳給瀏覽器,從而使得讀取子模塊7032能夠從緩存中讀取到該加載數(shù)據(jù),并將第一目標(biāo)模塊進(jìn)行渲染和展示,以實現(xiàn)在不依賴公共消息模塊的基礎(chǔ)上,可以快速、直接地完成第一目標(biāo)模塊的加載。
      [0143]如圖11所示,在一個實施例中,所述裝置還包括:
      [0144]判斷模塊丨101,用于在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0145]觸發(fā)模塊1102,用于當(dāng)所述判斷模塊1101的判斷結(jié)果為所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載,其中,第二目標(biāo)模塊可以是一個或多個與該第一目標(biāo)模塊級別相同的模塊、和/或下級子模塊(如可以是第一目標(biāo)模塊的子模塊)。
      [0146]在加載完該第一目標(biāo)模塊時,如果判斷模塊1101的判斷結(jié)果為該目標(biāo)網(wǎng)頁沒有被加載完成,則可以通過觸發(fā)模塊1102觸發(fā)該目標(biāo)完成事件,即通過該compete事件通知后續(xù)待加載模塊(即該第二目標(biāo)模塊),以通過該第二目標(biāo)模塊的回調(diào)函數(shù)來獲取第二目標(biāo)模塊的加載數(shù)據(jù),從而快速地完成第二目標(biāo)模塊的加載,且由于在加載任何模塊時,均不需要依賴任何公共消息模塊,因而降低了模塊加載時,時序調(diào)整和子模塊擴(kuò)展的復(fù)雜性,提升模塊的擴(kuò)展性。
      [0147]如圖12所示,在一個實施例中,所述觸發(fā)模塊1102包括:
      [0148]觸發(fā)子模塊11021,用于在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。當(dāng)?shù)诙繕?biāo)模塊為多個(即第二目標(biāo)模塊包括至少兩個待加載模塊)時,該目標(biāo)模塊的compete事件同時綁定的是至少兩個待加載模塊的回調(diào)函數(shù),因而,如果加載完該第一目標(biāo)模塊,則觸發(fā)子模塊11021可以觸發(fā)該第一目標(biāo)模塊的compete事件,以分別調(diào)用每個待加載模塊的回調(diào)函數(shù)來通過異步加載方式加載該至少兩個待加載模塊,從而能夠同時對該至少兩個待加載模塊進(jìn)行加載,進(jìn)而快速地完成所有模塊的加載,提高模塊的加載效率。根據(jù)本公開實施例的第三方面,提供一種模塊加載裝置,包括:
      [0149]處理器;
      [0150]用于存儲處理器可執(zhí)行指令的存儲器;
      [0151]其中,處理器被配置為:
      [0152]在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0153]獲取所述第一目標(biāo)模塊的狀態(tài)信息;
      [0154]根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0155]根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0156]上述處理器還可被配置為:
      [0157]所述獲取所述第一目標(biāo)模塊的狀態(tài)信息,包括:
      [0158]根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0159]根據(jù)確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0160]上述處理器還可被配置為:
      [0161 ]所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0162]當(dāng)所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0163]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者
      [0164]當(dāng)所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0165]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0166]上述處理器還可被配置為:
      [0167]所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0168]當(dāng)所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0169]通過所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0170]調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0171]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0172]上述處理器還可被配置為:
      [0173]所述方法還包括:
      [0174]在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0175]當(dāng)所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0176]上述處理器還可被配置為:
      [0177]所述當(dāng)所述目標(biāo)網(wǎng)址未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,包括:
      [0178]在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0179]圖13是根據(jù)一示例性實施例示出的一種用于模塊加載裝置1300的框圖,該裝置適用于終端設(shè)備。例如,裝置1300可以是移動電話,計算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。
      [0180]參照圖13,裝置1300可以包括以下一個或至少兩個組件:處理組件1302,存儲器1304,電源組件1306,多媒體組件1308,音頻組件1310,輸入/輸出(I /0)的接口 1312,傳感器組件1314,以及通信組件1316。
      [0181]處理組件1302通??刂蒲b置1300的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件1302可以包括一個或至少兩個處理器1320來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1302可以包括一個或至少兩個模塊,便于處理組件1302和其他組件之間的交互。例如,處理組件1302可以包括多媒體模塊,以方便多媒體組件1308和處理組件1302之間的交互。
      [0182]存儲器1304被配置為存儲各種類型的數(shù)據(jù)以支持在設(shè)備1300的操作。這些數(shù)據(jù)的示例包括用于在裝置1300上操作的任何存儲對象或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器1304可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機(jī)存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
      [0183]電源組件1306為裝置1300的各種組件提供電源。電源組件1306可以包括電源管理系統(tǒng),一個或至少兩個電源,及其他與為裝置1300生成、管理和分配電源相關(guān)聯(lián)的組件。
      [0184]多媒體組件1308包括在所述裝置1300和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或至少兩個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件1308包括一個前置攝像頭和/或后置攝像頭。當(dāng)設(shè)備1300處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
      [0185]音頻組件1310被配置為輸出和/或輸入音頻信號。例如,音頻組件1310包括一個麥克風(fēng)(MIC),當(dāng)裝置1300處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風(fēng)被配置為接收外部音頻信號。所接收的音頻信號可以被進(jìn)一步存儲在存儲器1304或經(jīng)由通信組件1316發(fā)送。在一些實施例中,音頻組件1310還包括一個揚聲器,用于輸出音頻信號。
      [0186]I/O接口 1312為處理組件1302和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
      [0187]傳感器組件1314包括一個或至少兩個傳感器,用于為裝置1300提供各個方面的狀態(tài)評估。例如,傳感器組件1314可以檢測到設(shè)備1300的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置1300的顯示器和小鍵盤,傳感器組件1314還可以檢測裝置1300或裝置1300—個組件的位置改變,用戶與裝置1300接觸的存在或不存在,裝置1300方位或加速/減速和裝置1300的溫度變化。傳感器組件1314可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件1314還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件1314還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
      [0188]通信組件1316被配置為便于裝置1300和其他設(shè)備之間有線或無線方式的通信。裝置1300可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件1316經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件1316還包括近場通信(NFC)模塊,以促進(jìn)短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
      [0189]在示例性實施例中,裝置1300可以被一個或至少兩個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子組件實現(xiàn),用于執(zhí)行上述方法。
      [0190]在示例性實施例中,還提供了一種包括指令的非臨時性計算機(jī)可讀存儲介質(zhì),例如包括指令的存儲器1304,上述指令可由裝置1300的處理器1320執(zhí)行以完成上述方法。例如,所述非臨時性計算機(jī)可讀存儲介質(zhì)可以是R0M、隨機(jī)存取存儲器(RAM)、CD-R0M、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
      [0191]—種非臨時性計算機(jī)可讀存儲介質(zhì),當(dāng)所述存儲介質(zhì)中的指令由上述裝置1300的處理器執(zhí)行時,使得上述裝置1300能夠執(zhí)行一種模塊加載方法,包括:
      [0192]在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊;
      [0193]獲取所述第一目標(biāo)模塊的狀態(tài)信息;
      [0194]根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù);
      [0195]根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      [0196]在一個實施例中,所述獲取所述第一目標(biāo)模塊的狀態(tài)信息,包括:
      [0197]根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù);
      [0198]根據(jù)確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。
      [0199]在一個實施例中,所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0200]當(dāng)所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0201 ]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者
      [0202]當(dāng)所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0203]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0204]在一個實施例中,所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括:
      [0205]當(dāng)所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程;
      [0206]通過所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中;
      [0207]調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);
      [0208]通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。
      [0209]在一個實施例中,所述方法還包括:
      [0210]在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;
      [0211]當(dāng)所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0212]在一個實施例中,所述當(dāng)所述目標(biāo)網(wǎng)址未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,包括:
      [0213]在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。
      [0214]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
      [0215]應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
      【主權(quán)項】
      1.一種模塊加載方法,其特征在于,包括: 在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊; 獲取所述第一目標(biāo)模塊的狀態(tài)信息; 根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù); 根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述獲取所述第一目標(biāo)模塊的狀態(tài)信息,包括: 根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù); 根據(jù)確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括: 當(dāng)所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù); 通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者 當(dāng)所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。4.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù),包括: 當(dāng)所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程; 通過所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中; 調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù);通過所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。5.根據(jù)權(quán)利要求1至4中任一項所述的方法,其特征在于,所述方法還包括: 在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成; 當(dāng)所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。6.根據(jù)權(quán)利要求5所述的方法,其特征在于, 所述當(dāng)所述目標(biāo)網(wǎng)址未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,包括: 在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。7.一種模塊加載裝置,其特征在于,包括: 確定模塊,用于在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊; 第一獲取模塊,用于獲取所述確定模塊確定出的所述第一目標(biāo)模塊的狀態(tài)信息; 第二獲取模塊,用于根據(jù)所述第一獲取模塊獲取到的所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù); 加載模塊,用于根據(jù)所述第二獲取模塊獲取到的所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述第一獲取模塊包括: 第一確定子模塊,用于根據(jù)所述第一目標(biāo)模塊的標(biāo)識,確定緩存中是否緩存有所述加載數(shù)據(jù); 第二確定子模塊,用于根據(jù)所述第一確定子模塊確定出的確定結(jié)果,確定所述狀態(tài)信息,其中,所述第一目標(biāo)模塊的狀態(tài)信息包括:未緩存所述加載數(shù)據(jù)、正在緩存所述加載數(shù)據(jù)、所述加載數(shù)據(jù)已完成緩存中的任一種狀態(tài)。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述第二獲取模塊包括: 第一調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù); 讀取子模塊,用于通過所述第一調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù);或者 第二調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為正在緩存所述加載數(shù)據(jù)時,等待預(yù)設(shè)時長,直至所述狀態(tài)信息由正在緩存所述加載數(shù)據(jù)轉(zhuǎn)換為所述加載數(shù)據(jù)已完成緩存時,調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù); 讀取子模塊,用于通過所述第二調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述第二獲取模塊包括: 第三調(diào)用子模塊,用于當(dāng)所述第一獲取模塊獲取到的所述狀態(tài)信息為未緩存所述加載數(shù)據(jù)時,調(diào)用目標(biāo)后臺進(jìn)程; 發(fā)送子模塊,用于通過所述第三調(diào)用子模塊調(diào)用的所述目標(biāo)后臺進(jìn)程,向所述目標(biāo)網(wǎng)址的服務(wù)器發(fā)送獲取所述加載數(shù)據(jù)的請求,且所述目標(biāo)后臺進(jìn)程在獲取到所述加載數(shù)據(jù)之后,將所述加載數(shù)據(jù)存儲至所述緩存中; 第四調(diào)用子模塊,用于調(diào)用所述第一目標(biāo)模塊對應(yīng)的回調(diào)函數(shù); 讀取子模塊,用于通過所述第四調(diào)用子模塊調(diào)用的所述回調(diào)函數(shù)和所述第一目標(biāo)模塊的所述標(biāo)識,從所述緩存中讀取所述加載數(shù)據(jù)。11.根據(jù)權(quán)利要求7至10中任一項所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于在加載完所述第一目標(biāo)模塊之后,判斷所述目標(biāo)網(wǎng)頁是否被加載完成;觸發(fā)模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述目標(biāo)網(wǎng)頁未被加載完成時,觸發(fā)所述第一目標(biāo)模塊的目標(biāo)完成事件,其中,所述目標(biāo)完成事件與所述第一目標(biāo)模塊之后需要加載的所述目標(biāo)網(wǎng)頁中的第二目標(biāo)模塊的回調(diào)函數(shù)相綁定,用于在被觸發(fā)時,調(diào)用所述第二目標(biāo)模塊的回調(diào)函數(shù),以通過所述第二目標(biāo)模塊的回調(diào)函數(shù)來獲取所述第二目標(biāo)模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于, 所述觸發(fā)模塊包括: 觸發(fā)子模塊,用于在加載完所述第一目標(biāo)模塊、且所述第二目標(biāo)模塊包括至少兩個待加載模塊時,觸發(fā)所述目標(biāo)完成事件,以通過所述目標(biāo)完成事件分別調(diào)用各待加載模塊的回調(diào)函數(shù)來異步獲取所述至少兩個待加載模塊的加載數(shù)據(jù),并完成所述第二目標(biāo)模塊的加載。13.一種模塊加載裝置,其特征在于,包括: 處理器; 用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 在接收到網(wǎng)址訪問請求時,根據(jù)所述網(wǎng)址訪問請求中的待訪問目標(biāo)網(wǎng)址對應(yīng)的目標(biāo)網(wǎng)頁,確定需要加載的第一目標(biāo)模塊; 獲取所述第一目標(biāo)模塊的狀態(tài)信息; 根據(jù)所述狀態(tài)信息,獲取加載所述第一目標(biāo)模塊所需的加載數(shù)據(jù); 根據(jù)所述加載數(shù)據(jù),加載所述第一目標(biāo)模塊。
      【文檔編號】G06F9/445GK105912363SQ201610222333
      【公開日】2016年8月31日
      【申請日】2016年4月11日
      【發(fā)明人】張旭華, 葉正茂, 陳志軍
      【申請人】北京小米移動軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1