用于 JSON 对象数据源的 Tabulator AJAX-like Loader

Tabulator AJAX-like Loader for JSON object data source

我目前在自定义 NetSuite(套件)表单中使用 Tabulator 4.8,它运行得非常好。

反应数据功能对我正在做的事情非常有效,它完全替代了 NetSuite 的订单项目页面和后续的采购订单创建。

但是,当用户选择大量商品进行订购时,在客户端脚本中处理数据时会出现延迟。

纯粹为了用户体验,我可以使用“Ajax”之类的加载程序将屏幕变灰,但由于数据源是预加载的 Javascript 对象,我不这样做相信 Tabulator Ajax Loader 是一个对象。

从 suitescript 的角度来看,Suitelet 在加载页面(服务器端)时加载所有必需的数据,然后将其作为 JSON 对象存储在内联 html 字段中。

然后 PageInit 客户端脚本获取数据并将其存储在客户端变量中,以供 table 和执行的后续操作使用。

功能很好,没问题。我只是希望能够在所有客户端计算都在进行时,使用动画 gif 加载器使制表符元素变灰。

你的意思是在显示和选择字段后你去处理你想要一个等待指示器的选择吗?

如果是这样,有多种方法可以获得:

  • 设置正文光标等待处理完成。 document.querySelector('body').style.cursor = 'wait';
  • 使用普通 Javascript
  • 动态添加您喜欢的任何类型的等待小部件
  • 在您的表单中添加另一个内联 HTML 字段,该字段具有 css 表示您的等待状态,并将其附加到正文并在等待时设置一个 class

如果您的等待状态是通过在客户端调用 N/https.post,您现在在 SS2 中有承诺,在 SS2.1 中有 async/await,因此您可以很容易地管理开始和结束留在 Suitescript 中的处理。

"但是,当用户选择大量商品进行订购时,"

这对我来说听起来像是一个持续的问题,同一个 suitelet 可能会 运行 一段时间并进行许多修改...... Tabulator 中是否有任何您已经挂钩的事件?

如果没有我会看看那个。 api 显示许多基于数据事件、dom 事件和 ajax 事件的不同事件和上下文的回调选项。 http://tabulator.info/docs/3.5#callbacks-cell

例如(请注意,我在这里使用的是他们的 jQuery 版本)您可以连接到渲染开始以显示和动画。

$("#example-table").tabulator({
    renderStarted:function(){
          toggleWaitScreen();
    },{
    renderStarted:function(){
          toggleWaitScreen();
    }
});

我建议您升级到 Tabulator v5.1。它正是在考虑到这种情况的情况下重建的。

您现在可以构建一个挂钩到 table 的生命周期事件的 Custom Module。新的内部数据管理器将在您访问数据时为您显示加载微调器。

幸运的是,已经有一个用于异步查询客户端数据库的示例模块,您可以在 Example Page

上找到完整的详细信息