【发布时间】:2015-06-03 10:59:00
【问题描述】:
我正在使用 django-ajax 模块并且我有一些基于 ajax 的工作:
views.py
@ajax
@login_required
def search_dist(request):
dist_list = Distributor.objects.all()
if request.method == 'GET':
starts_with = request.GET['query']
if starts_with:
dist_list = Distributor.objects.filter(
surname__istartswith=starts_with)
return render(request, 'distributors/distributors_list.html', {'distributors': dist_list})
JS
var search = $('#search');
search.on('keyup', function() {
window.setTimeout(function() {
var query;
query = search.val();
ajaxGet('{% url "distributors:search_dist" %}', {
'query': query
}, function(content) {
$('#distributors').html(content);
set_favorite();
})
}, 1000);
});
它工作得很好,但是当我打开控制台时,我看到服务器对同一件事发出了太多请求。例如:输入“Jhon”后,我看到
[03/Jun/2015 10:56:36]"GET /distributors/search_dist?query= HTTP/1.1" 200
25 次。我的代码有问题还是很正常?
【问题讨论】:
-
你能用
blur代替keyup吗? -
@Tushar,它发出的请求较少,但我必须散焦表单才能提交查询,这不是我需要的。