我使用sweetalert显示数据列表(大数据),然后允许用户从数据列表中进行选择。 sweetalert的HTML由后端生成,但是当我尝试打开此列表时,需要10-15秒的时间。 HTML已经由后端执行了,为什么要显示这花费这么多时间?
有没有办法减少这个时间?注意*我在HTML数据中使用数据表来显示数据。
swal({
title: 'Assign an User',
html: html_text,
customClass: 'user-table-holder',
confirmButtonText: 'Assign',
showCancelButton: true,
preConfirm: function () {
return new Promise(function (resolve, reject) {
var user_data = {
id: '',
name: ''
};
if ($('input[type=radio][name=assign-user]:checked').size() > 0) {
user_data.id = $('input[type=radio][name=assign-user]:checked').val();
user_data.name = $('.user-name[data-user-id="' + user_data.id + '"]').text();
resolve(user_data);
} else {
reject('You need to select an user');
}
});
}
}).then(function (user_data) {
$('input[name=user]').val(user_data.id);
$('input[name=status]').val('Inactive');
$('.status-text').text('User assigned (' + user_data.name + ')');
user_assigned = true;
swal({
title: 'User assigned',
text: 'The user has been assigned successfully',
type: 'success',
timer: 2000,
showConfirmButton: false
}).catch(swal.noop);
}).catch(swal.noop);
也许你正在使用的数据表插件需要时间。还尝试从html主体中删除预定义的类,因为它将查找类并加载需要时间加载的库。
你使用django模板来渲染这个HTML吗?
如果是,则不应以对象格式发送数据。尝试使用values_list,它将数据转换为查询列表,然后它不会对每个请求进行数据库查询。