gpt4 book ai didi

javascript - 对 Django 服务器的简单 Ajax 调用导致响应时间很慢 - 慢 TTFB

转载 作者:行者123 更新时间:2023-11-28 04:56:08 26 4
gpt4 key购买 nike

首先,我对 django、js 和 ajax 没有太多经验,但这是一个非常简单的例子,我找不到我的 ajax 调用花费大量时间的原因。我当前的开发配置是:windows 7、python 3.6、django 1.10.5、在 localhost 上运行的服务器 - 127.0.0.1:8000

基本上,我单击一个按钮(在特定按钮组中),这会激活 ajax,并根据回复更新按钮的颜色。

信息:实际上,我使用了一些更复杂的东西,但由于它也很慢,我试图简化它,看看它哪里出了问题,但我仍然找不到原因。

ajax代码:

$('body').on('click', '.some_module', function(){
var $something= $(this);

$.ajax({
url: 'some_function/',
type: 'GET',
data: {'some_name' : "just_example"},
dataType: 'json',
success: function(data){
...some_action_where_i_change_color_of_button...
...not important because even if it's empty, it's slow...
}
});
});

代码 django,views.py:

def change_module(request):
# ...for example using hardcoded return...
data = {
'success': True,
'curr': 'something',
'selected': [],
'previous': []
}
return HttpResponse(json.dumps(data), content_type='application/json')
# tried also JSONResponse, the same feedback

因此,通过使用此示例,我等待更新的时间超过 1 秒,并且TTFB 始终在 1 秒左右。 TTFB 与服务器端相关,但我真的不明白它怎么会这么慢,因为我发送的是硬编码的 json,里面几乎没有字符串元素。

Chrome developer tools TTFB image

如果有类似问题的人能与我分享他的解决方案,我将不胜感激。

最佳答案

如果我是你,我会想使用 Django Generic View 类。查看当前文档:https://docs.djangoproject.com/en/1.10/topics/class-based-views/

看这个例子:

from django.http import JsonResponse
from django.views.generic import View
class MyViewClass(View):
def get(self, request):
data = {
'success': True,
'curr': 'something',
'selected': [],
'previous': []
}
return JSONResponse(data)

在你的js中: 关于类型的一些信息:

"You should use type if you're using versions of jQuery prior to 1.9.0"

           $.ajax({
method: "GET", #HERE TRY TO USE METHOD INSTEAD OF TYPE
url: "/some_function",
data: {'some_name' : "just_example"},
datatype: "json",
success: function (data) {
... Do Something here...
}
}),

关于javascript - 对 Django 服务器的简单 Ajax 调用导致响应时间很慢 - 慢 TTFB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com