【问题标题】:Delay a Listview or Image.network to avoid statusCode: 444延迟 Listview 或 Image.network 以避免 statusCode: 444
【发布时间】:2021-05-14 00:23:05
【问题描述】:

我有一个 ListView 显示卡片中的一些项目。卡片有 CachedNetworkImage,它正在将我之前从网站抓取的链接中的图像加载到列表中。我的问题是 - 至少我认为 - ListView 有 50-100 个项目,并且加载图像的请求发送到服务器的速度太快,因为在 50-100 个图像中,有时会加载 10-20 或 30 个,其余的将返回 HTTP 请求失败,状态码:444。 我正在寻找一种延迟请求的方法,即使只有 200 毫秒。我尝试使用 FutureBuilder 来延迟,但是当我打印时间以监控请求的速度时,它们仍然在一秒钟内被发送。 谢谢

     FutureBuilder(
       future: Future.delayed(Duration(milliseconds: 500)),
       builder:(c,s)=>
         ListView.builder(
            itemCount: 50,
            itemBuilder(context, index){
               return Card(
                  child: Row(
                     children: [
                        CachedNetworkImage(
                           imageUrl: imagesLink[index],
                        placeholder: (context, url) => CircularProgressIndicator(),
                        errorWidget: (context,url,error) => new Icon(Icons.error),
                      ),
                   ]
                ),
             );
          }
       )
     )

【问题讨论】:

  • 仅供参考,它是 scraped(和 scrapingscraperscrape)未报废。 “报废”的意思是像垃圾一样扔掉。

标签: flutter dart httprequest


【解决方案1】:

该 API 似乎对您的请求进行了速率限制,因此您无法一次发送所有请求。您的方法的问题在于它只会延迟 Listview.builder() 显示您的所有图像。一种方法是像这样延迟图像的显示:

ListView.builder(
      itemCount: 50,
      itemBuilder: (context, index) {
        return FutureBuilder(
          future: Future.delayed(
              Duration(milliseconds: 50 * index)), // Adjust this to fit api
          builder: (_, __) => Card(
            child: Row(children: [
                 CachedNetworkImage(
                       imageUrl: imagesLink[index],
                    placeholder: (context, url) => CircularProgressIndicator(),
                    errorWidget: (context,url,error) => new Icon(Icons.error),
                  ),
            ]),
          ),
        );
      },
    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2012-02-03
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    相关资源
    最近更新 更多