mod: 请求节流

This commit is contained in:
guozhigq
2023-08-19 20:37:42 +08:00
parent ec9d9739fe
commit b7eed8578a
7 changed files with 27 additions and 12 deletions

View File

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -36,10 +37,10 @@ class _BangumiPageState extends State<BangumiPage>
() async { () async {
if (scrollController.position.pixels >= if (scrollController.position.pixels >=
scrollController.position.maxScrollExtent - 200) { scrollController.position.maxScrollExtent - 200) {
if (!_bangumidController.isLoadingMore) { EasyThrottle.throttle('my-throttler', const Duration(seconds: 1), () {
_bangumidController.isLoadingMore = true; _bangumidController.isLoadingMore = true;
await _bangumidController.onLoad(); _bangumidController.onLoad();
} });
} }
final ScrollDirection direction = final ScrollDirection direction =

View File

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -35,10 +36,10 @@ class _LivePageState extends State<LivePage> {
() { () {
if (scrollController.position.pixels >= if (scrollController.position.pixels >=
scrollController.position.maxScrollExtent - 200) { scrollController.position.maxScrollExtent - 200) {
if (!_liveController.isLoadingMore) { EasyThrottle.throttle('my-throttler', const Duration(seconds: 1), () {
_liveController.isLoadingMore = true; _liveController.isLoadingMore = true;
_liveController.onLoad(); _liveController.onLoad();
} });
} }
final ScrollDirection direction = final ScrollDirection direction =

View File

@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -40,12 +41,10 @@ class _RcmdPageState extends State<RcmdPage>
() { () {
if (scrollController.position.pixels >= if (scrollController.position.pixels >=
scrollController.position.maxScrollExtent - 200) { scrollController.position.maxScrollExtent - 200) {
if (!_rcmdController.isLoadingMore) { EasyThrottle.throttle('my-throttler', const Duration(seconds: 1), () {
_rcmdController.isLoadingMore = true; _rcmdController.isLoadingMore = true;
WidgetsBinding.instance.addPostFrameCallback((_) async { _rcmdController.onLoad();
_rcmdController.onLoad(); });
});
}
} }
final ScrollDirection direction = final ScrollDirection direction =

View File

@ -37,6 +37,9 @@ class VideoReplyController extends GetxController {
if (type == 'init') { if (type == 'init') {
currentPage = 0; currentPage = 0;
} }
if (noMore.value == '没有更多了') {
return;
}
var res = await ReplyHttp.replyList( var res = await ReplyHttp.replyList(
oid: aid!, oid: aid!,
pageNum: currentPage + 1, pageNum: currentPage + 1,

View File

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -65,9 +66,9 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
if (_videoReplyController.scrollController.position.pixels >= if (_videoReplyController.scrollController.position.pixels >=
_videoReplyController.scrollController.position.maxScrollExtent - _videoReplyController.scrollController.position.maxScrollExtent -
300) { 300) {
if (!_videoReplyController.isLoadingMore) { EasyThrottle.throttle('replylist', const Duration(seconds: 2), () {
_videoReplyController.onLoad(); _videoReplyController.onLoad();
} });
} }
final ScrollDirection direction = final ScrollDirection direction =

View File

@ -337,6 +337,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.6.6" version: "1.6.6"
easy_debounce:
dependency: "direct main"
description:
name: easy_debounce
sha256: f082609cfb8f37defb9e37fc28bc978c6712dedf08d4c5a26f820fa10165a236
url: "https://pub.dev"
source: hosted
version: "2.0.3"
extended_image: extended_image:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@ -113,6 +113,8 @@ dependencies:
package_info_plus: ^4.1.0 package_info_plus: ^4.1.0
url_launcher: ^6.1.12 url_launcher: ^6.1.12
flutter_svg: ^2.0.7 flutter_svg: ^2.0.7
# 防抖节流
easy_debounce: ^2.0.3
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: