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

処理インジケーターを表示したくない場合は、単にbProcessingfalse に設定します (または、完全に削除すると、デフォルトで false になります)。見たくない場合はbProcessing、最初に含めた理由がわかりません。コードを継承しましたか?

【コメントを受けて更新】

今、私は分かる。しかし、それはニシンだと思います。kaveman のコメントに戻ります。処理が完了するまで、処理にどれくらいの時間がかかるかわかりません。

「でもグレッグ!」「少なくとも 1 秒経過するまでは、Processing を表示しないでください。簡単です!」と言う人もいます。

あなたがすることは、同じ問題の遅れたバージョンと 1 つの問題をトレードオフすることだけです。処理に 1.2 秒かかるとしましょう。「処理中」インジケータが表示されるのを少し待ってから、「うん、これは長いので、インジケータを表示しましょう!」と判断します。しかし、インジケーターは 0.2 秒間しか表示されません。醜い「フラッシュ」、ただ長く遅れただけです。実際、この場合、ずっと見えていれば見栄えが良かったと思います。

プロセスにかかる時間を比較的確実に予測できない限り、これを解決する良い方法はわかりません。クライアント側の環境はそれぞれ異なるため、それを行うことはできません。

この赤いニシンを捕まえようとしないことをお勧めします...有効にしておくか、しないかのどちらかです。それが私の率直なアドバイスです。

于 2012-04-27T02:57:39.463 に答える