伙计们,我在那里遇到了一个问题,我很高兴,因为我确实做到了表(dataTable)在我的项目中可以正常工作,但是现在可以测试多少行可以支持我的项目了: 2000行:显示4秒。 8000行:显示40秒。 20000行:计算不到的((
我将Angular 7,Nodejs,PostgreSQL,express,jquery用于表库。 这是我的代码:
寄存器的组成部分:(list.ts)-在这里我调用dataTable并对其进行配置-
export class ListComponent implements OnInit {
users$: any[] = [];
dtOptions: DataTables.Settings = {};
dtTrigger: Subject<any> = new Subject();
public denuncias: Denuncia[];
constructor(
private _denunciaService: DenunciaService
) {
}
ngOnInit(): void {
this.dtOptions = {
"paging": true,
language: {
processing: "Procesando...",
search: "Buscar:",
lengthMenu: "Mostrar _MENU_ registros",
info: "Mostrando elementos del _START_ al _END_ de un total de _TOTAL_ registros",
infoEmpty: "No existen registros",
infoFiltered: "(Filtrados _MAX_ elementos en total).",
infoPostFix: "",
loadingRecords: "Cargando....",
zeroRecords: "No existen registros de denuncias",
emptyTable: "No se encontraron resultados.",
paginate: {
first: "Primer",
previous: "Anterior",
next: "Siguiente",
last: "Último"
},
aria: {
sortAscending: ": Activar para ordenar ascendentemente",
sortDescending: ": Activar para ordenar descendentemente"
}
}
};
this.getDenuncias();
}
getDenuncias() {
this._denunciaService.getDenunciasxd().subscribe(response => {
this.denuncias = response.data;
this.dtTrigger.next();
},
error => {
console.log(<any>error);
})
}
ngOnDestroy(): void {
this.dtTrigger.unsubscribe();
}
}
这是代码HTML
<table class="table table-hover table-bordered" datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger">
<thead class="">
<tr>
<th id="ID">ID</th>
<th id="FACULTAD">Locacion</th>
<th id="DETALLE">Detalle de los hechos</th>
<th id="FECHA">Fecha</th>
<th id="ESTADO">Estado</th>
<th id="DELETE">Detalle</th>
</tr>
</thead>
<tbody class="align-middle">
<tr *ngFor="let denuncia of denuncias" class="align-middle">
<td class="align-middle" style="font-family: consolas">
{{denuncia.numeroDenuncia}}
</td>
<td class="align-middle">
{{denuncia.FacultadDependencia}}
</td>
<td class="align-middle">
{{denuncia.detalleHechos}}
</td>
<td class="align-middle">
{{denuncia.fechaDenuncia}}
</td>
<td class="align-middle">
{{denuncia.Estado}}
</td>
<td class="align-middle">
<a class="button" title="Aprende a crear un blog" href="/delete/<%= data[i].numeroDenuncia %>"></a>
</td>
</tr>
</tbody>
</table>
这是后端中的控制器:
const controller = {};
const { Pool } = require('pg');
var connectionString = 'postgres://me:system@localhost/antisobornodb';
const pool = new Pool({
connectionString: connectionString,
})
controller.listar = async(request, response) => {
try {
const result = await pool.query(
'SELECT "detalleHechos", "Estado","numeroDenuncia","FacultadDependencia","Estado","fechaDenuncia" ' +
'FROM tb_anonima UNION ALL ' +
'SELECT "detalleHechos", "Estado","numeroDenuncia","FacultadDependencia","Estado","fechaDenuncia" ' +
'FROM tb_juridica UNION ALL ' +
'SELECT "detalleHechos", "Estado","numeroDenuncia","FacultadDependencia","Estado","fechaDenuncia" ' +
'from tb_natural');
// return response.render('registros', );
return response.status(200).send({ data: result.rows });
} catch (err) {
// return next(err);
console.log(err);
}
};
module.exports = controller;
这段代码很好用,但是我认为只需1-1500行,我不需要数百万行,这是我工作的一个小项目,也许我需要读取的最大行数将是15000或20000,不再。
预先感谢:D