Actualmente estoy utilizando Tabulator 4.8 dentro de un formulario personalizado de NetSuite (suitelet) y está funcionando muy bien.
La función de datos reactivos es bastante efectiva para lo que estoy haciendo, que es un reemplazo completo para la página de artículos de pedido de NetSuite y la creación posterior de órdenes de compra.
Sin embargo, cuando el usuario selecciona una gran cantidad de artículos para ordenar, hay un retraso mientras los datos se procesan dentro del script del cliente.
Solo para la experiencia del usuario, podría atenuar la pantalla con un cargador tipo "Ajax", pero como la fuente de datos es un objeto Javascript precargado, no creo que el Tabulador Ajax Loader sea un objeto.
Desde el punto de vista de una secuencia de comandos, Suitelet carga todos los datos necesarios a medida que se carga la página (del lado del servidor) y luego los almacena como un objeto JSON en un campo html en línea.
Luego, la secuencia de comandos del cliente PageInit toma los datos y los almacena en una variable del lado del cliente para usar en la tabla y realizar las acciones posteriores.
Funcionalmente es genial, sin problemas. Me encantaría poder atenuar el elemento del tabulador con un cargador de gif animado mientras se realizan todos los cálculos del lado del cliente.
¿Lo que está diciendo es que después de mostrar y seleccionar campos va a procesar la selección que desea un indicador de espera?
Si es así, hay varias formas de conseguirlo:
document.querySelector('body').style.cursor = 'wait'; Si su estado de espera es haciendo una llamada N/https.post en el lado del cliente, ahora tiene promesas allí en SS2 y async/await en SS2.1 para que pueda administrar con bastante facilidad el inicio y el final de su procesamiento mientras permanece en Suitescript. .
"Sin embargo, cuando el usuario selecciona una gran cantidad de artículos para ordenar",
Esto me parece una preocupación constante y el mismo conjunto de aplicaciones podría estar funcionando durante un tiempo con muchas modificaciones... ¿hay algún evento en el Tabulador al que ya esté conectado?
Si no, lo miraría. La API muestra muchas opciones de devolución de llamadas para diferentes eventos y contextos que se basan en eventos de datos, eventos dom y eventos ajax. http://tabulator.info/docs/3.5#callbacks-cell
Por ejemplo (y tenga en cuenta que estoy usando sus versiones de jQuery aquí) podría conectarse a un inicio de renderizado para mostrar y animar.
$("#example-table").tabulator({ renderStarted:function(){ toggleWaitScreen(); },{ renderStarted:function(){ toggleWaitScreen(); } });Le sugiero que actualice a Tabulator v5.1. Ha sido reconstruido con exactamente esta situación en mente.
Ahora puede crear un módulo personalizado que se conecte a los eventos del ciclo de vida de la tabla. El nuevo administrador de datos interno le mostrará la rueda giratoria de carga mientras accede a sus datos.
Por suerte, ya hay un módulo de ejemplo para consultar de forma asíncrona una base de datos del lado del cliente, puede encontrar todos los detalles en la página de ejemplo