2

フロントエンドで使用されるjQueryを使用して、DjangoベースのWebサイトを構築しています。その 1 つの側面は、サーバーが次の形式の 200 レコードをフロントエンドに送信することです。

field_1: up to 1000 character text
field_2: up to 200 character text
field_3: up to 200 character text
field_4: up to 200 character text
field_5: up to 200 character text
field_6: a boolean value

フロントエンドが行うことは、基本的に、ページをリロードせずに、つまり JavaScript/jQuery を使用して、これらのレコードを 1 つずつ表示することです。

だから私の質問は - それらのレコードをクライアント側で便利に保存できるように、これらの〜350KBのほとんどテキストデータをDjangoからjQueryに転送する最も便利な方法は何でしょうか(もちろん、セッションの長さだけ)上記の目的のために?私は提案を受け入れます。

4

2 に答える 2

2

クライアント上のデータをどうするかによって異なります。200 個の <div> タグなどでテキストとして表示するだけですか? それとも、クライアントはこのデータを処理する必要がありますか? その場合、JSON データとして送信することができます。その後、Javascript でデータ構造に直接読み込むことができます。

于 2011-02-06T11:07:36.677 に答える
1

あなたが提供した追加情報から、必要に応じて一度に1つずつ呼び出す通常のDjangoテンプレートとしてデータを提供するだけだと思います。サーバーに ping を実行する必要があるのはnext、次ごとに 5 回ではなく、1 回ごとに 1 回だけです。それを通常の HTML として提供し、jQuery を使用してそのフラグメントを必要な場所に直接ロードします。このために JSON を気にしないでください。(もしあれば) 利益がほとんどないため、より多くの作業が必要になります。

例:

#urls
url(r'^record/(?P<record_id>\d+)/$', 'site.views.record', name='record')

#views site/views.py
def record(request, record_id):
    obj = Record.objects.get(id=record_id)
    return render_to_response('site/record_partial.html', {
       'obj': obj
    }, context_instance=RequestContext(request))

#templates site/record_partial.html
    <div> {{ obj.field1 }} </div>
    <div> {{ obj.field2 }} </div>
    <div> {{ obj.field3 }} </div>
    <div> {{ obj.field4 }} </div>
    <div> {{ obj.field5 }} </div>

# Page
<div id='fields'>
</div>
<div id='next' data-page='3'> next >> </div>
<script type='text/javascript'>
    var next = $('#next').click(function() { 
        var page = $(next).data('page');
        $('#fields').load('/site/record/' + page + '/', function() {
            $(next).data('page', page+1); // incr page number
        });
    })
</script>
于 2011-02-06T13:00:23.997 に答える