我正在使用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);
答案 0 :(得分:1)
也许您正在使用的数据表插件花费时间。另外,请尝试从html主体中删除预定义的类,因为它会查找该类并加载该库,这将花费一些时间来加载。
您是否正在使用django模板呈现此html?
如果是,则永远不要以对象格式发送数据。尝试使用values_list将数据转换为查询列表,然后它不会对每个请求进行数据库查询。