這可能與應有的方式相去甚遠,我正在不斷學習,這是我第一次嘗試這樣的事情。問題:即使使用 setTimeout 函數,服務器也會為我寫的每個字母發送響應,盡管我希望它等待用戶停止鍵入并只獲取完成的單詞我的模板中的腳本:lookup.addEventListener('keyup', e => { let searchValue = e.target.value; if (searchValue.length > 4){ setTimeout(() => { fetch(`{% url 'find_book' %}?param=${e.target.value}` ) .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.log(err))}, 2000); }views.py@api_view(['GET'])def find_book(request): param = request.GET.get("param") if param: url = f'https://www.googleapis.com/books/v1/volumes?q=intitle:{param}&key=xxx' r = requests.get(url) if r.status_code == 200: data = r.json() return Response(data, status=status.HTTP_200_OK) else: return Response({"error": "Request failed"}, status=r.status_code) else: return Response({}, status=status.HTTP_200_OK)
Django - AJAX Fetch 發送每個輸入字母的請求
鴻蒙傳說
2023-11-02 16:37:03