繁体   English   中英

Tabulator AJAX-like Loader for JSON object 数据源

[英]Tabulator AJAX-like Loader for JSON object data source

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

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

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

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

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

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

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

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

如果是这样,有多种方法可以实现:

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

如果您正在等待的 state 是通过在客户端拨打N/https.post您现在在 SS2 和 SS2.1 中有 async/await 的承诺,因此您可以在留在 Suitescript 时非常轻松地管理处理的开始和结束.

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

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

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

例如(注意我在这里使用他们的 jQuery 版本)你可以挂钩到渲染开始显示和 animation。

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

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

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

幸运的是,已经有一个用于异步查询客户端数据库的示例模块,您可以在示例页面上找到完整的详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM