簡體   English   中英

jQuery Bootgrid如何檢查bootgrid是否仍在加載

[英]jQuery Bootgrid how to check if bootgrid is still loading

我已經實現了jQuery Bootgrid。 我想管理顯示和隱藏已實現的裝載程序。

使用$("#ajaxLoader").show();顯示和隱藏加載器$("#ajaxLoader").show(); 和$(“#ajaxLoader”)。hide();`。

我將Bootgrid初始化實現如下:

var grid = $('#grid').on("load.rs.jquery.bootgrid", function () {
    $("#ajaxLoader").show();
}).bootgrid({
    ajax: true,
    ajaxSettings: {
        method: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        cache: false
    },
    searchSettings: {
        delay: 500,
    },
    url: myURL,
    rowCount: [5, 10, 50, 75, 100, 200, -1]
}).on("loaded.rs.jquery.bootgrid", function (e) {
   $("#ajaxLoader").hide();
});

現在這可以正常工作,但是我想通過兩種方式對其進行優化:

  1. Bootgrid的搜索功能似乎具有它自己的加載器,因此是否有一種方法可以在搜索發生時不顯示我的Ajax加載器?

  2. 在短查詢中,我的加載程序會彈出並非常快速地隱藏。 有什么辦法可以延遲這種情況嗎?

解決選項2可能會自己解決選項1,但是無論如何,這就是我針對選項2嘗試過的方法。

我嘗試了setTimeout(function () { $("#ajaxLoader").show(); }, 1000); ,但是它再也不會被隱藏。 我通過使用setTimeout(function () { $("#ajaxLoader").hide(); }, 1000)解決了這個問題,但是它閃爍顯示並隱藏了不必要的內容。

因此,理想情況下,在應用該功能之前,我需要檢查Bootgrid是否仍在加載。

如何解決我的加載問題?

編輯:

我也嘗試設置一個loading變量,在我的load方法中,我說:

loading = true;
setTimeout(function () { if (loading) { $("#ajaxLoader").show(); }}, 1000);

以及我loaded事件中的以下內容:

setTimeout(function () { $("#ajaxLoader").hide(); }, loaderDelay);

那仍然給了我同樣的閃爍錯誤。

我使用clearTimeout()函數解決了該問題,如下所示:

var showLoader;

var grid = $('#grid').on("load.rs.jquery.bootgrid", function () {
    showLoader = setTimeout(function () { $("#ajaxLoader").show(); }, 1000);
}).bootgrid({
    ajax: true,
    ajaxSettings: {
        method: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        cache: false
    },
    searchSettings: {
        clearTimeout(showLoader);
        delay: 500,
    },
    url: myURL,
    rowCount: [5, 10, 50, 75, 100, 200, -1]
}).on("loaded.rs.jquery.bootgrid", function (e) {
   $("#ajaxLoader").hide();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM