কীভাবে jQuery এ লোডিং স্পিনার দেখাবেন?


412

ইন প্রোটোটাইপ আমি একটি "লোড হচ্ছে ..." এই কোড দিয়ে ইমেজ দেখাতে পারেন:

var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, 
onLoading: showLoad, onComplete: showResponse} );

function showLoad () {
    ...
}

ইন jQuery এর , আমি এই সাথে একটি উপাদান মধ্যে একটি সার্ভার পৃষ্ঠাটি লোড করতে পারেন:

$('#message').load('index.php?pg=ajaxFlashcard');

তবে প্রোটোটাইপের মতো আমি কীভাবে এই আদেশের সাথে কোনও লোডিং স্পিনারকে সংযুক্ত করব?

উত্তর:


793

বেশ কয়েকটি উপায় আছে। আমার পছন্দের উপায়টি উপাদানটিতে অজাক্স স্টার্ট / স্টপ ইভেন্টগুলিতে কোনও ফাংশন সংযুক্ত করা।

$('#loadingDiv')
    .hide()  // Hide it initially
    .ajaxStart(function() {
        $(this).show();
    })
    .ajaxStop(function() {
        $(this).hide();
    })
;

আপনি যখনই কোনও অজ্যাক্স কল করবেন তখনই অজ্যাক্সস্টার্ট / স্টপ ফাংশনগুলি সূচিত হবে।

আপডেট : jQuery 1.8 হিসাবে, ডকুমেন্টেশনটি .ajaxStart/Stopকেবলমাত্র সংযুক্ত থাকা উচিত document। এটি উপরের স্নিপেটকে এতে রূপান্তর করবে:

var $loading = $('#loadingDiv').hide();
$(document)
  .ajaxStart(function () {
    $loading.show();
  })
  .ajaxStop(function () {
    $loading.hide();
  });

48
এটি একটি ডিআইভিতে একটি সাধারণ লোডের জন্য খুব গ্লোবাল।
মনট্রিয়ালিস্ট

363
খুব বিশ্বব্যাপী? আপনি কতগুলি পৃথক "দয়া করে অপেক্ষা করুন" বার্তা চান?
নিকফ

23
এইভাবে দুর্ভাগ্যক্রমে আপনি লোডিং ডিভি পজিশনিং নিয়ন্ত্রণ করতে পারবেন না যদি আপনি কেবল কোনও মডেল লোডিং উইন্ডোটি দেখাতে না চান তবে
এজ্যাক্স

10
: ajaxStart এবং ajaxStop যাতে আপনি তাদের নামস্থান করতে jQuery এর ঘটনা stackoverflow.com/questions/1191485/... docs.jquery.com/Namespaced_Events
ডেভিড Xia থেকে

10
JQuery> = 1.9 ব্যবহার করা থাকলে, এজাক্স স্টার্ট এবং এজাক্সটপ ইভেন্টগুলি $ (দস্তাবেজ) এ সংযুক্ত করুন। jquery.com/upreg-guide/1.9/…
ডোমেনিক

213

JQuery এর জন্য আমি ব্যবহার করি

jQuery.ajaxSetup({
  beforeSend: function() {
     $('#loader').show();
  },
  complete: function(){
     $('#loader').hide();
  },
  success: function() {}
});

13
আমার জন্য কাজ করে, এইচটিএমএল এর মতো কিছু হওয়া উচিত: <div id = 'loader'> <img src = "spinner.gif" /> </div>
yigal

7
এই আমার জন্য সবচেয়ে পরিষ্কার ছিল। এজ্যাক্সেটআপের পরিবর্তে, আমি পাঠিয়েছি: এবং সম্পূর্ণ: inside আজাক্সের ({... বিবৃতিতে
inside অভ্যর্থনা

4
এটির মূল্য কী তা জানেন না, তবে jQuery এর ডকুমেন্টেশনে উল্লেখ করেছে যে .ajaxSetup () ব্যবহার করার পরামর্শ দেওয়া হয় না। লিঙ্ক
pec

এখানে নোট করুন যা beforeSendপ্রতিটি কলের আগে ডাকা হয়, ajaxStartযখন প্রথম এজাক্স পদ্ধতিটি কল করার সময়ই ট্রিগার করা হয়। তেমনিভাবে ajaxStop, সর্বশেষ এজাক্স কল শেষ হলে এটি বলা হয় । আপনার যদি একাধিক একযোগে অনুরোধ থাকে তবে এই উত্তরের স্নিপেটটি সঠিকভাবে কাজ করবে না।
নিকফ

আমার জন্য কাজ করে না যদি এজাক্স সময় বেরিয়ে আসে (ম্যাকের জন্য ফায়ারফক্স 28)।
ওসো

48

আপনি কেবল jQuery এর .ajaxফাংশনটি ব্যবহার করতে পারেন এবং এর বিকল্পটি ব্যবহার beforeSendকরতে পারেন এবং কোনও ফাংশন সংজ্ঞায়িত করতে পারেন যাতে আপনি লোডার ডিভের মতো কিছু দেখাতে পারেন এবং সাফল্যের বিকল্পে আপনি সেই লোডার ডিভটি লুকিয়ে রাখতে পারেন।

jQuery.ajax({
    type: "POST",
    url: 'YOU_URL_TO_WHICH_DATA_SEND',
    data:'YOUR_DATA_TO_SEND',
    beforeSend: function() {
        $("#loaderDiv").show();
    },
    success: function(data) {
        $("#loaderDiv").hide();
    }
});

আপনার যে কোনও স্পিনিং জিআইফ চিত্র থাকতে পারে। এখানে এমন একটি ওয়েবসাইট যা আপনার রঙীন স্কিম অনুসারে দুর্দান্ত একটি এজেএক্স লোডার জেনারেটর: http://ajaxload.info/


16
successযদি একটি ত্রুটি বলা হবে না, কিন্তু "আপনি সবসময় এমন একটি পাবেন completeঅনুযায়ী এমনকি সমকালীন অনুরোধের জন্য, কলব্যাক," jQuery এর আয়াক্স ঘটনাবলী
লিগি

23

আপনি এজেএক্স কল করার ঠিক আগে ডমটিতে অ্যানিমেটেড চিত্রটি sertোকাতে পারেন এবং এটি সরাতে একটি ইনলাইন ফাংশন করতে পারেন ...

$("#myDiv").html('<img src="images/spinner.gif" alt="Wait" />');
$('#message').load('index.php?pg=ajaxFlashcard', null, function() {
  $("#myDiv").html('');
});

এটি নিশ্চিত করবে যে আপনার অ্যানিমেশন পরবর্তী অনুরোধগুলিতে একই ফ্রেমে শুরু হয় (যদি তা বিবেচনা করে)। মনে রাখবেন যে IE এর পুরানো সংস্করণগুলিতে অ্যানিমেশনটিতে সমস্যা হতে পারে

শুভকামনা!


13
শীর্ষ টিপ: ডিসপ্লের কোনও সাথে সেট না করে স্পিনার.gif প্রিলোড করুন। অন্যথায় স্পিনার এখনও ডাউনলোড হওয়ায় আপনি কিছুটা বিলম্বিত স্পিনার প্রভাব পেতে পারেন।
ইউরিডিয়াম

চমৎকার টিপ, অন্য কারো ব্যবহার তুলনায় অনেক সহজ প্লাগইন
গর্ডন থম্পসন

নিস! তবে প্রিয়, আরও একটি বিষয় যা আমি স্পিনারটিকে 2 সেকেন্ডের জন্য প্রদর্শন করতে চাই এমনকি পৃষ্ঠাটি ইতিমধ্যে লোড হয়ে গেছে।
উভয় এফএম

5
@ বুথএফএম কারণ লোকেরা অপেক্ষা করতে উপভোগ করে ...?
জোশ স্টোডোলা

21
$('#message').load('index.php?pg=ajaxFlashcard', null, showResponse);
showLoad();

function showResponse() {
    hideLoad();
    ...
}

http://docs.jquery.com/Ajax/load#urldatacallback


আপনার এখানে সময়ের সমস্যা হতে পারে, তাই না?
টিম বাথ

2
@ অলটিমেট্রেট আমার মনে হয় আপনি এটি ভুল পেয়েছেন। শো-লোড () কেন কলব্যাক নয়? জাভাস্ক্রিপ্ট অ্যাসিঙ্ক্রোনসালি সামগ্রী লোড করবে। আমি সঠিক হলে সামগ্রীটি লোড হওয়ার আগেও শো-লোড () কাজ করবে।
জাসিম

2
@ জাসিম আমিও অনুরূপ পদ্ধতি ব্যবহার করি এবং এটি আসলে অ্যাসিঙ্ক কলগুলিতে নির্ভর করে। আমি আজাক্স কলের আগে কোথাও শোল্ডটি রাখব তবে পুরো পয়েন্টটি একজন স্পিনারকে দেখাতে হবে, জেএস কলটি শুরু করুক এবং এজেএক্স সম্পন্ন হওয়ার পরে স্পিনারকে কলব্যাকে হত্যা করবে।
Nenotlep

17

আপনি যদি ব্যবহার করেন তবে আপনি এই জাতীয় কিছু ব্যবহার $.ajax()করতে পারেন:

$.ajax({
        url: "destination url",
        success: sdialog,
        error: edialog,
        // shows the loader element before sending.
        beforeSend: function () { $("#imgSpinner1").show(); },
        // hides the loader after completion of request, whether successfull or failor.             
        complete: function () { $("#imgSpinner1").hide(); },             
        type: 'POST', dataType: 'json'
    });  

11

লোডিং প্লাগইন ব্যবহার করুন: http://plugins.jquery.com / প্রকল্প / লোডিং

$.loading.onAjax({img:'loading.gif'});

10
এই সাধারণ কাজের জন্য একটি প্লাগইন? এটি কি আসলেই ভাল সমাধান নয়? কে একটি পৃষ্ঠায় 100 টি স্ক্রিপ্ট লোড করতে চায়?
জাসিম

2
একমত। আপনি আরও ভাল পারফরম্যান্স চাইলে সংকোচনের সাথে যুক্ত হন conc
নাথান বুবনা

9
অসম্মতি: পৃথক এবং মডুলারাইজ করুন, কোডটি পুনরায় ব্যবহার করুন, যদি আপনি নিজের কাজ বজায় রাখতে সক্ষম হন এবং অন্যদেরও তা করতে চান। আপনার ব্যবহারকারীর এত খারাপ সংযোগ থাকার কী সুযোগ তাদের ক্লায়েন্ট আপনার কোডের পাশাপাশি কোনও প্লাগইন লোড করতে পারে না?
লিগি

@ নাথন বুবনা লিঙ্কটি মারা গেছে
স্প্রিংলিয়নার

"আপনার ব্যবহারকারীর এত খারাপ সংযোগ থাকার কি সুযোগ তাদের ক্লায়েন্ট আপনার কোডের পাশাপাশি কোনও প্লাগইন লোড করতে পারে না?" খুব ভাল আমি বলতে চাই।
অ্যান্ড্রু অক্সেনবার্গ

9

বৈকল্পিক: মূল পৃষ্ঠার উপরের বাম দিকে আইডি = "লোগো" সহ আমার একটি আইকন রয়েছে; এজেন্ট যখন কাজ করছে তখন একটি স্পিনার জিআইএফ উপরে (স্বচ্ছতার সাথে) উপরে আবৃত থাকে।

jQuery.ajaxSetup({
  beforeSend: function() {
     $('#logo').css('background', 'url(images/ajax-loader.gif) no-repeat')
  },
  complete: function(){
     $('#logo').css('background', 'none')
  },
  success: function() {}
});

9

আমি মূল জবাব দুটি পরিবর্তন সঙ্গে শেষ ।

  1. JQuery 1.8 হিসাবে, এজ্যাক্সার্ট এবং এজ্যাক্সটপ কেবল সংযুক্ত করা উচিত document। এটি কেবলমাত্র কয়েকটি এজ্যাক্স অনুরোধকে ফিল্টার করা শক্ত করে তোলে। সু ...
  2. এজ্যাক্সেন্ড এবং অজ্যাক্স কমপ্লিউটে স্যুইচ করা স্পিনারকে দেখানোর আগে বর্তমান এজাক্স অনুরোধটিকে ছেদ করা সম্ভব করে।

এই পরিবর্তনগুলির পরে এই কোড:

$(document)
    .hide()  // hide it initially
    .ajaxSend(function(event, jqxhr, settings) {
        if (settings.url !== "ajax/request.php") return;
        $(".spinner").show();
    })
    .ajaxComplete(function(event, jqxhr, settings) {
        if (settings.url !== "ajax/request.php") return;
        $(".spinner").hide();
    })

চমৎকার কাজ। ajaxCompleteঅকালে আগুনে যখন অনুরোধ পুনরায় চেষ্টা, তাই আমি একটি সমন্বয় ব্যবহার করেছি বলে মনে হয় ajaxSendএবং ajaxStopএবং এটি কাজ করে মহান।
মাহন

@ স্কুইজারশোগি: অন্যান্য বিষয় রয়েছে যে এই প্রশ্নের উত্তর দেয়, অনুসন্ধানটি ব্যবহার করুন!
এমিল স্টেনস্ট্রোম

8

আমিও এই উত্তরে অবদান রাখতে চাই। আমি jQuery তে অনুরূপ কিছু খুঁজছিলাম এবং এটি যা আমি শেষ পর্যন্ত ব্যবহার করে শেষ করেছি।

আমি http://ajaxload.info/ থেকে আমার লোডিং স্পিনার পেয়েছি । আমার সমাধানটি এই সহজ উত্তরের উপর ভিত্তি করে http://christierney.com/2011/03/23/global-ajax-loading-spinners/ এ রয়েছে

মূলত আপনার এইচটিএমএল মার্কআপ এবং সিএসএস এর মতো দেখতে পাবেন:

<style>
     #ajaxSpinnerImage {
          display: none;
     }
</style>

<div id="ajaxSpinnerContainer">
     <img src="~/Content/ajax-loader.gif" id="ajaxSpinnerImage" title="working..." />
</div>

এবং তারপরে আপনি jQuery এর কোডটি এর মতো দেখতে পাবেন:

<script>
     $(document).ready(function () {
          $(document)
          .ajaxStart(function () {
               $("#ajaxSpinnerImage").show();
          })
          .ajaxStop(function () {
               $("#ajaxSpinnerImage").hide();
          });

          var owmAPI = "http://api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=YourAppID";
          $.getJSON(owmAPI)
          .done(function (data) {
               alert(data.coord.lon);
          })
          .fail(function () {
               alert('error');
          });
     });
</script>

এটা যে হিসাবে হিসাবে সহজ :)


8

আপনি কেবল একই ট্যাগটিতে একটি লোডার চিত্র নির্ধারণ করতে পারেন যার উপরে আপনি পরে অ্যাজাক্স কল ব্যবহার করে সামগ্রী লোড করবেন:

$("#message").html('<span>Loading...</span>');

$('#message').load('index.php?pg=ajaxFlashcard');

আপনি একটি চিত্র ট্যাগের সাথে স্প্যান ট্যাগটি প্রতিস্থাপন করতে পারেন।


1
এইভাবে ইউআই পরিচালনা করা শক্ত হবে। "লোডিং" পাঠ্য এবং চূড়ান্ত বার্তাটির জন্য আমাদের সম্পূর্ণ ভিন্ন স্টাইলের প্রয়োজন হতে পারে। আমরা এই সমস্যাটি পরিচালনা করার জন্য উপরে উল্লিখিত কলব্যাক পদ্ধতিটি ব্যবহার করতে পারি
জাসিম

6

এজ্যাক্স ইভেন্টগুলির জন্য গ্লোবাল ডিফল্ট সেট করার পাশাপাশি আপনি নির্দিষ্ট উপাদানগুলির জন্য আচরণ সেট করতে পারেন। সম্ভবত তাদের ক্লাস পরিবর্তন করা কি যথেষ্ট হবে?

$('#myForm').ajaxSend( function() {
    $(this).addClass('loading');
});
$('#myForm').ajaxComplete( function(){
    $(this).removeClass('loading');
});

স্পিনারের সাথে #myForm লুকানোর জন্য সিএসএসের উদাহরণ:

.loading {
    display: block;
    background: url(spinner.gif) no-repeat center middle;
    width: 124px;
    height: 124px;
    margin: 0 auto;
}
/* Hide all the children of the 'loading' element */
.loading * {
    display: none;  
}

1
এটি আমার দৃষ্টিতে নির্বাচিত উত্তর হওয়া উচিত। ধন্যবাদ @ লিগি
নাম জি ভিইউ

রিয়েল দুর্দান্ত উত্তর
রাসক্লানিকভ

4

নোট করুন যে স্পিনারদের কাজ করার জন্য আপনাকে অবিচ্ছিন্ন কলগুলি অবশ্যই ব্যবহার করতে হবে (কমপক্ষে এটি এজ্যাক্স কলের পরে আমার দেখাতে না পারায় এবং কলটি শেষ হওয়ার সাথে সাথে স্পিনারকে অপসারণ করার সাথে সাথে দ্রুত চলে গেল) away

$.ajax({
        url: requestUrl,
        data: data,
        dataType: 'JSON',
        processData: false,
        type: requestMethod,
        async: true,                         <<<<<<------ set async to true
        accepts: 'application/json',
        contentType: 'application/json',
        success: function (restResponse) {
            // something here
        },
        error: function (restResponse) {
            // something here                
        }
    });

4
$('#loading-image').html('<img src="/images/ajax-loader.gif"> Sending...');

        $.ajax({
            url:  uri,
            cache: false,
            success: function(){
                $('#loading-image').html('');           
            },

           error:   function(jqXHR, textStatus, errorThrown) {
            var text =  "Error has occured when submitting the job: "+jqXHR.status+ " Contact IT dept";
           $('#loading-image').html('<span style="color:red">'+text +'  </span>');

            }
        });

স্বল্পতম উপায় হ'ল স্বতন্ত্র পটভূমিতে ajaxload.info থেকে ডাউনলোড করা চিত্র সহ চিত্র ট্যাগ প্রবেশ করানো হবে
ইজাবেলা স্কিবিনস্কা

2

আমি jQuery UI ডায়ালগ দিয়ে নিম্নলিখিত ব্যবহার করেছি। (সম্ভবত এটি অন্যান্য এজ্যাক্স কলব্যাকগুলির সাথে কাজ করে?)

$('<div><img src="/i/loading.gif" id="loading" /></div>').load('/ajax.html').dialog({
    height: 300,
    width: 600,
    title: 'Wait for it...'
});

অ্যাজাক্স কলটি সম্পূর্ণ হওয়ার পরে এর সামগ্রীটি প্রতিস্থাপন করা না হওয়া পর্যন্ত এতে একটি অ্যানিমেটেড লোডিং জিএফ রয়েছে।


2

এটি আমার পক্ষে সেরা উপায়:

jQuery :

$(document).ajaxStart(function() {
  $(".loading").show();
});

$(document).ajaxStop(function() {
  $(".loading").hide();
});

কফি :

  $(document).ajaxStart ->
    $(".loading").show()

  $(document).ajaxStop ->
    $(".loading").hide()

দস্তাবেজ: অজ্যাক্সস্টার্ট , এজাক্সটপ


ঠিক আছে, এবং আপনি যদি এই উত্তরটিতে উল্লিখিত প্লাগইনটি একসাথে ব্যবহার করতে পারেন তবে আপনি চান ...
ম্যাট

2

জাভাস্ক্রিপ্ট

$.listen('click', '#captcha', function() {
    $('#captcha-block').html('<div id="loading" style="width: 70px; height: 40px; display: inline-block;" />');
    $.get("/captcha/new", null, function(data) {
        $('#captcha-block').html(data);
    }); 
    return false;
});

সিএসএস

#loading { background: url(/image/loading.gif) no-repeat center; }

2

এটি সেই নির্দিষ্ট উদ্দেশ্যে খুব সাধারণ এবং স্মার্ট প্লাগইন: https://github.com/hekigan/is-loading


সত্যিই সুন্দর! বিশেষত যদি আপনি ডেমোসটি একবার দেখুন ... DOM উপাদানগুলিকে অক্ষম করুন, ট্যাগ, সম্পূর্ণ ওভারলে, এলিমেন্ট ওভারলে ... এটি আপনার প্রয়োজনীয় সমস্ত সরবরাহ করে। এটি তাত্ক্ষণিকভাবে কাজ করতে আপনি সহজেই এই উত্তরটির সাথে পূর্ণ ওভারলে একত্রিত করতে পারেন ।
ম্যাট

1

আমি এটা করি:

var preloaderdiv = '<div class="thumbs_preloader">Loading...</div>';
           $('#detail_thumbnails').html(preloaderdiv);
             $.ajax({
                        async:true,
                        url:'./Ajaxification/getRandomUser?top='+ $(sender).css('top') +'&lef='+ $(sender).css('left'),
                        success:function(data){
                            $('#detail_thumbnails').html(data);
                        }
             });

1

আমি আপনি ঠিক মনে করেন. এই পদ্ধতিটি খুব বিশ্বব্যাপী ...

যাইহোক - এটি যখন আপনার এজেএক্স কলটির পৃষ্ঠাতে কোনও প্রভাব পড়ে না তখন এটি একটি ভাল ডিফল্ট। (উদাহরণস্বরূপ পটভূমি সংরক্ষণ করুন)। (আপনি সর্বদা এটি "বিশ্বব্যাপী" পাস করে একটি নির্দিষ্ট অজ্যাক্স কলের জন্য স্যুইচ অফ করতে পারেন: মিথ্যা - jquery এ ডকুমেন্টেশন দেখুন

যখন এজেএক্স কলটি পৃষ্ঠার অংশটি রিফ্রেশ করার জন্য বোঝানো হয়েছে তখন আমার "লোডিং" চিত্রগুলি সতেজ বিভাগের জন্য নির্দিষ্ট হওয়া পছন্দ করি। আমি দেখতে চাই কোন অংশটি সতেজ হয়েছে।

আপনি যদি এমন কিছু লিখতে পারেন তবে তা কত শীতল হবে তা কল্পনা করুন:

$("#component_to_refresh").ajax( { ... } ); 

এবং এটি এই বিভাগে একটি "লোডিং" দেখায়। নীচে একটি ফাংশন আমি লিখেছি যে "লোডিং" ডিসপ্লেটিও পরিচালনা করে তবে এটি আপনি অ্যাজ্যাক্সে সতেজ হওয়া অঞ্চলটির সাথে সুনির্দিষ্ট।

প্রথমে আমি আপনাকে এটি কীভাবে ব্যবহার করতে হয় তা দেখিয়ে দিন

<!-- assume you have this HTML and you would like to refresh 
      it / load the content with ajax -->

<span id="email" name="name" class="ajax-loading">
</span>

<!-- then you have the following javascript --> 

$(document).ready(function(){
     $("#email").ajax({'url':"/my/url", load:true, global:false});
 })

এবং এটি ফাংশন - এটি একটি প্রাথমিক সূচনা যা আপনি নিজের ইচ্ছে মতো উন্নত করতে পারেন। এটা খুব নমনীয়।

jQuery.fn.ajax = function(options)
{
    var $this = $(this);
    debugger;
    function invokeFunc(func, arguments)
    {
        if ( typeof(func) == "function")
        {
            func( arguments ) ;
        }
    }

    function _think( obj, think )
    {
        if ( think )
        {
            obj.html('<div class="loading" style="background: url(/public/images/loading_1.gif) no-repeat; display:inline-block; width:70px; height:30px; padding-left:25px;"> Loading ... </div>');
        }
        else
        {
            obj.find(".loading").hide();
        }
    }

    function makeMeThink( think )
    {
        if ( $this.is(".ajax-loading") )
        {
            _think($this,think);
        }
        else
        {
            _think($this, think);
        }
    }

    options = $.extend({}, options); // make options not null - ridiculous, but still.
    // read more about ajax events
    var newoptions = $.extend({
        beforeSend: function()
        {
            invokeFunc(options.beforeSend, null);
            makeMeThink(true);
        },

        complete: function()
        {
            invokeFunc(options.complete);
            makeMeThink(false);
        },
        success:function(result)
        {
            invokeFunc(options.success);
            if ( options.load )
            {
                $this.html(result);
            }
        }

    }, options);

    $.ajax(newoptions);
};


1

আপনি যখন সার্ভারের অনুরোধটি প্রতিবার লোডার ব্যবহার করার পরিকল্পনা করেন, আপনি নীচের প্যাটার্নটি ব্যবহার করতে পারেন।

 jTarget.ajaxloader(); // (re)start the loader
 $.post('/libs/jajaxloader/demo/service/service.php', function (content) {
     jTarget.append(content); // or do something with the content
 })
 .always(function () {
     jTarget.ajaxloader("stop");
 });

এই কোডটি বিশেষত jaxaxloader প্লাগইন ব্যবহার করে (যা আমি সবে তৈরি করেছি)

https://github.com/lingtalfi/JAjaxLoader/


1

আমার এজাক্স কোডটি দেখতে দেখতে, বাস্তবে, আমি সবেমাত্র async মন্তব্য করেছি: মিথ্যা লাইন এবং স্পিনারটি প্রদর্শিত হবে।

$.ajax({
        url: "@Url.Action("MyJsonAction", "Home")",
        type: "POST",
        dataType: "json",
        data: {parameter:variable},
        //async: false, 

        error: function () {
        },

        success: function (data) {
          if (Object.keys(data).length > 0) {
          //use data 
          }
          $('#ajaxspinner').hide();
        }
      });

আমি এজাক্স কোডের আগে একটি ফাংশনটির মধ্যে স্পিনারটিকে দেখিয়ে দিচ্ছি:

$("#MyDropDownID").change(function () {
        $('#ajaxspinner').show();

এইচটিএমএল-এর জন্য, আমি একটি হরফ ফন্ট ব্যবহার করেছি:

<i id="ajaxspinner" class="fas fa-spinner fa-spin fa-3x fa-fw" style="display:none"></i>

আশা করি এটি কাউকে সাহায্য করবে।


0

আপনি সর্বদা ব্লক ইউআই জিকুয়েরি প্লাগইন ব্যবহার করতে পারেন যা আপনার জন্য সব কিছু করে এবং এজ্যাক্স লোড হওয়ার সময় এটি কোনও ইনপুটের পৃষ্ঠাটিও অবরুদ্ধ করে। যদি মনে হয় যে প্লাগইনটি কাজ করছে না, আপনি এই উত্তরে এটি সঠিকভাবে ব্যবহার করতে পারেন এটা দেখ.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.