<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何讓 App 首屏啟動(dòng)更快 -- httpdns 持久化緩存方案

          共 981字,需瀏覽 2分鐘

           ·

          2017-09-27 18:43

          首屏啟動(dòng)之痛

          對于大部分app而言,首屏啟動(dòng)是最為關(guān)鍵的場景之一,一旦出現(xiàn)阻塞將直接影響到用戶體驗(yàn),為此阿里云httpdns sdk推薦異步接口getIpByHostAsync來獲取ip,其大致過程如下:

          _a

          用戶從調(diào)用getIpByHostAsync接口大致會經(jīng)歷:

          • 內(nèi)存緩存檢查
          • ip合法性檢查
          • 異步httpdns請求

          從流程中可以看出,由于httpdns請求是異步的,對于app首屏場景來說,httpdns可能正在解析途中,app在解析結(jié)果返回前會拿到空的ip,轉(zhuǎn)而去做Local DNS解析。

          解決之道:持久化緩存

          為了追求極致的性能體驗(yàn),盡量避免首屏啟動(dòng)時(shí)的Local DNS解析,本文推出httpdns的持久化緩存方案,新增接口:
          void setCachedIPEnabled(boolean enable);

          初始化示例:
          service = HttpDns.getService(getApplicationContext(), ACCOUNT_ID);
          service.setCachedIPEnabled(true);

          當(dāng)setCachedIPEnabled(true)被調(diào)用時(shí),httpdns解析記錄從持久化緩存同步到內(nèi)存緩存。httpdns請求成功,解析記錄會同步更新到內(nèi)存緩存和持久化緩存,其大致過程如下:

          • Step1 httpdns sdk初始化
          • Step2 持久化緩存開啟
          • Step3 持久化緩存記錄更新到內(nèi)存緩存
          • Step4 調(diào)用getIpByHostAsync
          • Step5 檢查ip是否合法
          • Step6 拿到ip,發(fā)起http請求

          采用持久化緩存前,APP啟動(dòng)時(shí)發(fā)起業(yè)務(wù)請求時(shí)過程:

          _b

          采用持久化緩存后的過程如下:

          _c

          有了持久化緩存,app首屏啟動(dòng)就能立刻拿到解析好的ip,同時(shí),阿里云httpdns sdk內(nèi)部的過期機(jī)制也能保證拿到ip的可靠性。此外,網(wǎng)絡(luò)切換發(fā)生后,SP(Server Provider,服務(wù)提供商)也可能發(fā)生變化,相同Host在不同SP下獲取的ip也會區(qū)別對待。httpdns sdk會結(jié)合當(dāng)前網(wǎng)絡(luò)環(huán)境,通過SP和Host共同確定ip,讓app拿到的結(jié)果更加精準(zhǔn)。

          持久化緩存功能在Android v1.1.2 及以上版本添加,ios版本也將在近期上線,敬請期待!

          瀏覽 25
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉国产纶乱免费阅读 | 久久国产精品波多野结衣AV | 中文字幕永久地址 | 亚洲 欧美 综合 | 夜夜嗨日日Av |