更优雅,更快捷的方式为用户提供数据 - Django

时间:2015-11-29 05:09:25

标签: javascript python html django

我一直致力于我的一个项目,在其功能之一中,我们从数据库中检索数据并将其写入 Blob 实例,并使其可供用户下载。但是,由于数据非常大,如 .JSON 文件中的15k +页面,8000000字。给出了我将数据写入该文件的代码片段。请建议任何其他优雅和快速的方式,因为这需要花费太多时间,并且还会冻结机器一段时间。

function bulk_download_json(label_id) {
    $.msg({
        //autoUnblock : false,
        clickUnblock : false,
        beforeUnblock: function() {
            $.ajax({
                type: "GET",
                url: "/initiate_download/?label=" + label_id,
                success: function(data) {

                    var bulk_mails = data;


                    bulk_download_filename = label_id.concat(".json");

                    var bulk_json_file = JSON.stringify(bulk_mails);

                    var a = window.document.createElement('a');
                    a.href = window.URL.createObjectURL(new Blob([bulk_json_file], {
                        type: 'text/json'
                    }));
                    a.download = bulk_download_filename;

                    // Append anchor to body.
                    document.body.appendChild(a)
                    a.click();

                    // Remove anchor from body
                    document.body.removeChild(a)

                    remove_bulk_data(label_id);
                }
            });
         //self.unblock();
        }
    });
}

1 个答案:

答案 0 :(得分:0)

你可以使用分页来传递page_no并限制所提取的记录

[推荐] https://docs.djangoproject.com/en/1.8/topics/pagination/