国产亚洲精品资源在线26u

      
      
      <th id="ljgpb"><pre id="ljgpb"><sup id="ljgpb"></sup></pre></th>

      <rp id="ljgpb"></rp>

      您現在的位置: 微信小程序 > 微信小程序開發 > 教程 >

      微信小程序解除 10 個請求并發限制了?!

      來源:微信小程序 編輯:Yiyongtong.com 發布時間:2018-12-13 09:01熱度:

      這可能是一個冷消息,所以標題比較勁爆。

      小程序并發限制由來已久,從剛發布時的 5 并發,到后來的 10 并發,同時發出的請求數若超出這個限制則將被殘忍拋棄,由此催生了很多開發者在自己的項目中造了「請求排隊」的輪子。然而事實上,早在一年半以前,該限制就被微信官方取消。

      10 個請求的并發限制

      關于并發限制,微信開發者文檔中是這么寫的:

      這一限制的意思是在同一時刻, wx.request 、 wx.uploadFile 、 wx.downloadFile 加起來的并發總數不能超出 10 個。

      至今,仍有很多開發者一直遵守著這個規則。

      許多人在寫業務的時候小心翼翼地維護著請求數。為了將請求數控制好,特地將一些并行請求改為串行,或者引入請求隊列來維護小程序請求。

      這部分資深開發者為了遵守這一規則所花的功夫,多少反映出了早年他們在面對數額超出后請求被殘忍拋棄時的 無奈 。

      附小程序基礎庫版本 1.3.0 的控制臺報錯:

      時至今日,仍有開發者在討論解決小程序并發限制的方法:

      被忽略的消息

      實際上, 微信在 2017 年 7 月的基礎庫 1.4.0 版本 升級中就做了優化,對超過并發限制的請求做了隊列處理,只是還有很多開發者并不知道這一消息。

      從嚴格意義上來說,此次優化并沒有完全解除原有的并發限制。目前同時處理請求的上限仍是 10 個,但在 10 個以外的請求會排隊,當前面有請求完成的時候,隊列中的請求按順序發送并處理, *不會像之前那樣直接將超出 10 個的請求丟棄 。

      附件小程序基礎庫 1.4.0 更新日志(部分):

      現在,我們終于可以忽略請求并發限制,愉快地發送請求了。畢竟請求都是可以都發送出去的,只不過在效率上會比 無并發限制 的情況慢一些。

      發送請求的正確姿勢

      如上文所說,微信小程序是在基礎庫 1.4.0 版本中加入對超過并發限制的請求做隊列處理優化的,在 1.4.0 以下的版本中超出并發部分的請求會被丟棄。

      據微信官方數據,截止到 2018 年 12 月,1.4.0 版本以下用戶占比大約是 0.04%,雖然目前小程序很少會兼容到這么低的版本,但是對一些 有特殊需要的小程序 也要注意基礎庫的差異。

      另外要注意的是小程序并發請求的排隊機制。當同時調用的請求超過 10 個時,小程序會先發起 10 個并發請求,超過 10 個的部分按調用順序進行排隊,當前一個請求完成時,再發送隊列中的下一個請求。

      附 20 個請求并發測試:

      測試結果:

      從圖中可以看到,前 10 個請求同時發出,而后面的請求的起始點,對應了前面某個請求的結束點,可以反映出請求的排隊行為。

      這意味著,在并發請求很多的時候應該做好排隊策略,按請求的重要程度和響應時間調整調用順序,如果遇到請求的響應很慢的情況,可以考慮做 timeout 處理,以免大量等待,影響用戶體驗。

       

      国产亚洲精品资源在线26u

          
          
          <th id="ljgpb"><pre id="ljgpb"><sup id="ljgpb"></sup></pre></th>

          <rp id="ljgpb"></rp>