2

我正在使用前端使用的 jQuery 构建一个基于 Django 的网站。一方面是服务器向前端发送了以下格式的 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。

所以我的问题是 - 将大约 350KB 的大部分文本数据从 Django 传输到 jQuery 的最方便的方法是什么,以便这些记录可以方便地存储在客户端(当然,仅用于会话的长度)出于上述目的?我愿意接受建议。

4

2 回答 2

2

这将取决于您将如何处理客户端上的数据。只需将其显示为 200 个 <div> 标签之类的文本?还是客户必须处理这些数据?在这种情况下,您可能希望将其作为 JSON 数据发送。然后它可以被 Javascript 直接读取到数据结构中。

于 2011-02-06T11:07:36.677 回答
1

根据您提供的额外信息,我想说只是将数据作为常规 Django 模板提供,您可以根据需要一次调用一个模板。您应该只需要每次 ping 服务器一次next,而不是每次 5 次。将其作为常规 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 回答