node.js - nodejs 多线程下载图片如何做到多张图片只请求一次?
ringa_lee
ringa_lee 2017-04-17 15:31:14
0
4
482

如题。比如

http://www.xx.com/abc.jpg,很多个这样的地址。
因为是异步进行的。你每次请求之前没法判断这张图片是否已经下载获取存在过了。所以发出了很多个下载同一地址的请求。

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
小葫芦

有兩種不同的情況:請求前已經知道所有的URL和請求前不知道所有的URL
第一種情況:先把請求的圖片URL數組去重,再發起請求
第二種情況:將請求過的URL放在一個物件中,後續檢查是否請求過,如果請求過則不再發起請求

另外NodeJS的機製本身並不是多線程,而是單一進程事件循環,所以可以用簡單的標誌位元來實作哨兵機制

巴扎黑

要嘛就請求過了就不再請求,不過不能保證請求的就能下載成功,下載失敗再次請求

小葫芦

檔案下載後保存的名字是不是一樣的?如果一樣的話,判斷檔案有沒有,再去下載,這樣可以避免重複下載。

阿神

md5以及url

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板