2017-03-01 21 views
1

まず、django、js、ajaxに関する多くの経験はありませんが、これは非常に簡単な例です。 ajax呼び出しには多くの時間がかかります。 私の現在のdevの構成は次のとおりです。Windows 7の、のpython 3.6、ジャンゴ1.10.5、ローカルホスト上で実行しているサーバー - 127.0.0.1:8000Djangoサーバーへの単純なAjax呼び出しの応答時間が遅い - 遅いTTFB

基本的に、私は(特定のボタングループで)ボタンをクリックして、これは、Ajaxを活性化し、応答に応じて、ボタンの色が更新されます。

Info:現実にはもう少し複雑なものを使用していますが、速度が遅かったので、それを単純化してどこがうまくいかないか見てみましたが、それでも理由を見つけることはできません。

コード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... 
      } 
     }); 
    }); 

コードジャンゴ、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

同様の問題を持っていた誰かが私と彼の解決策を共有する場合、私は幸いです。

+0

JSON応答(データ)を使用した場合、同じ1秒TTFB? – Beomi

+0

はい、同じです。サーバーがlocalhost(127.0.0.1:8000)で動作していることを言い忘れたかもしれません – DragutinB

答えて

0

私があなただったら、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で:種類について 何か:

「あなたが使用している場合は、タイプを使用する必要があり、現在のドキュメントで ルック 1.9.0より前のバージョンのjQuery 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... 
       } 
      }), 
+0

返信いただきありがとうございます。私はDjango Generic Viewクラスの詳細を学びます。しかし、私はこれを実装して、私はまだ同じ問題があります。同じ遅延が約1秒あります。 _post_を_method_に置き換えても、私には役に立ちませんでした。 – DragutinB

関連する問題