Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX post请求每秒变慢一次[Django]_Javascript_Jquery_Python_Ajax_Django - Fatal编程技术网

Javascript AJAX post请求每秒变慢一次[Django]

Javascript AJAX post请求每秒变慢一次[Django],javascript,jquery,python,ajax,django,Javascript,Jquery,Python,Ajax,Django,作为一个小项目,我创建了一个基于Django的Web应用程序。到目前为止,我已经用基本的Javascript创建了我的网页。我可以成功地从数据库中获取数据,并通过Javascript创建AJAX POST请求。一切正常,但有件事让我很困扰: 每一秒POST请求都需要更长的时间才能到达服务器。例如:Request1在29毫秒后返回成功。Request2需要(对于完全相同的任务!)超过300毫秒。这种情况持续下去,并且是100%可复制的。我不知道这个问题的原因是什么。我希望有人能猜出这个问题的根源是

作为一个小项目,我创建了一个基于Django的Web应用程序。到目前为止,我已经用基本的Javascript创建了我的网页。我可以成功地从数据库中获取数据,并通过Javascript创建AJAX POST请求。一切正常,但有件事让我很困扰:

每一秒POST请求都需要更长的时间才能到达服务器。例如:Request1在29毫秒后返回成功。Request2需要(对于完全相同的任务!)超过300毫秒。这种情况持续下去,并且是100%可复制的。我不知道这个问题的原因是什么。我希望有人能猜出这个问题的根源是什么

使用的代码:

//THIS IS THE POST REQUEST IN THE JS-SCRIPT (CLIENT-SIDE)
        $.ajax({
            type: "POST",
            url: '/update_database',
            data: {
                "habit_name": habits[h].habit_name,
                "meta_data": meta_data
            },
            success: function(result) {
                update();
                console.log('Successful');
            }
        });

POST请求的服务器端处理:

def update_database(request):

post_dict = dict(six.iterlists(request.POST))
habit_name = post_dict["habit_name"][0]
meta_data = post_dict["meta_data"][0]

change_meta_data(habit_name, meta_data)

data = {
    "Habits": Habit.objects.all().values()
}
return JsonResponse(list(data["Habits"]), safe=False)

更新:只有在本地主机上启动服务器时才会出现问题。如果我在本地IP地址上运行服务器,它可以正常工作。

您是否设法确定服务器响应缓慢,或者请求被您的浏览器保留?@Walucas老实说,我不知道如何才能做到这一点。有什么想法吗?当请求第二次到达时,以及当它返回到浏览器时,请尝试检查您的runserver输出(您可以使用datetime进行区分)。。。这应该包括服务器端。。。。我想说,如果这很快,问题就出在你的浏览器上。。。。但我只是在猜怎么做好主意,谢谢!我刚刚测量了所有服务器端计算/数据库工作的时间。结论:服务器端不应该是问题所在,因为时间总是在20毫秒左右。所以看起来它是您的浏览器。。。。你试过使用其他浏览器吗?