0

我在 jQuery Datatables 中有一个问题。每次单击排序时都会显示此“正在处理”消息,并且排序是客户端排序。这真的很烦人,因为它看起来像一个闪烁。我怎么能做这样的事情?如果处理时间小于 1 秒,不显示“处理中”消息?

$('#tblUsers').dataTable({
                    "bDestroy": true,
                    "bProcessing": true,
                    "sProcessing": false,
                    "sAjaxSource": path,
                    "bFilter": false,
                    "bLengthChange": false,
                    "bInfo": false,
                    "iDisplayLength": 15,
                    "sPaginationType": "full_numbers",
                    "aoColumns":
                [
                    { "mDataProp": "UserName" },
                    { "mDataProp": "FirstName" },
                    { "mDataProp": "LastName" },
                    { "sDefaultContent": "", "fnRender": function (oObj) { return "<a onclick=AssignUser(this,'" + oObj.aData.UserName + "','btnRemove_" + oObj.aData.UserName + "') id='btnAssgin_" + oObj.aData.UserName + "'> Assign User</a>"; }
                    },
                     { "sDefaultContent": "", "fnRender": function (oObj) { return "<a onclick=RemoveUser(this,'" + oObj.aData.UserName + "','btnAssgin_" + oObj.aData.UserName + "') id='btnRemove_" + oObj.aData.UserName + "' disabled='true'>Remove User</a>"; }
                     }

                ],
                    "aoColumnDefs": [
                                      { "sWidth": "20%", "aTargets": [0] },
                                      { "sWidth": "20%", "aTargets": [1] },
                                      { "sWidth": "20%", "aTargets": [2] },
                                      { "sWidth": "20%", "aTargets": [3] },
                                      { "sWidth": "20%", "aTargets": [4] }
                                    ]
                });
4

1 回答 1

0

如果您不想看到处理指示符,只需设置bProcessing为 false(或将其完全删除,默认情况下为 false)。如果您不想看到它,不知道为什么要包括在内bProcessing!继承代码?

[回应评论的更新]

我现在知道了。但我认为这是一条红鲱鱼,这又回到了卡夫曼的评论。在完成之前,您不知道处理需要多长时间。

“但是格雷格!” 我听到你们中的一些人说,“只是在它至少有一秒钟之前不要显示那个正在处理的东西!简单!”

你所要做的就是用一个问题来换取同一问题的延迟版本。假设处理需要 1.2 秒。您等待显示“处理”指示器一秒钟,然后您决定“是的,这很长,让我们显示指示器!” 但随后指示器仅显示 0.2 秒。一个丑陋的“闪光”,只是延迟了更长的时间。事实上,我认为在这种情况下,如果它一直可见,它会看起来更好。

除非您始终可以相对确定地预测该过程需要多长时间,否则我看不到解决此问题的好方法。你不能这样做,因为每个客户端环境都会有所不同。

我建议不要试图抓住这条红鲱鱼……要么保持启用,要么不启用。这是我诚实的建议。

于 2012-04-27T02:57:39.463 回答