jQuery.active ফাংশন


102

আমি নিম্নলিখিত jQuery ফাংশন সম্পর্কে আরও কিছু তথ্য সন্ধান করার চেষ্টা করছিলাম:

jQuery.active

এটি একটি সার্ভারের সক্রিয় সংযোগগুলির সংখ্যা পরীক্ষা করতে বর্ণিত হয় এবং সংযোগের সংখ্যা শূন্য হলে সত্যের মূল্যায়ন করা হবে।

আমি jQuery সাইটে এই ফাংশন সম্পর্কে কোনও তথ্য খুঁজে পাইনি এবং ভাবছিলাম যে আমি কোথায় থাকতে পারি তা যদি কেউ জানতে পারে।

উত্তর:


163

এটি অভ্যন্তরীণভাবে একটি চলক jQuery ব্যবহার করে তবে এটি লুকানোর কোনও কারণ ছিল না, সুতরাং এটি ব্যবহারের জন্য রয়েছে। মাত্র একটি মাথা আপ, এটি jquery.ajax.activeপরবর্তী প্রকাশে পরিণত হয় । কোনও ডকুমেন্টেশন নেই কারণ এটি উন্মোচিত হয়েছে তবে অফিসিয়াল এপিআই তে নেই, প্রচুর জিনিস আসলে এর মতো, jQuery.cache(যেখানে সমস্ত কিছু jQuery.data()যায়)।

আমি এখানে লাইব্রেরিতে প্রকৃত ব্যবহারের দ্বারা অনুমান করছি , এটি সমর্থন করার জন্য $.ajaxStart()এবং $.ajaxStop()এটির (যা আমি আরও ব্যাখ্যা করব) কেবল সেখানে উপস্থিত হবে বলে মনে হচ্ছে , তবে কোনও অনুরোধ শুরু হওয়া বা বন্ধ হওয়ার পরে কেবল 0 হয় কিনা সেগুলি তারা যত্নশীল। তবে, যেহেতু এটি আড়াল করার কোনও কারণ নেই, এটি আপনার কাছে উন্মোচিত হয় আপনি বর্তমানে যুগপত এজেএক্স অনুরোধগুলির আসল সংখ্যাটি দেখতে পাচ্ছেন ।


যখন jQuery একটি AJAX অনুরোধ শুরু করে, তখন এটি ঘটে :

if ( s.global && ! jQuery.active++ ) {
  jQuery.event.trigger( "ajaxStart" );
}

এটিই $.ajaxStart()ঘটনাকে আগুন জ্বালিয়ে দেয়, সংযোগের সংখ্যাটি কেবল 0 থেকে 1 এ চলে গেছে ( jQuery.active++এটি 0 এর পরে নেই, এবং !0 == true), এর অর্থ বর্তমান যুগপত অনুরোধগুলির প্রথমটি । একই প্রান্তটি অন্য প্রান্তে ঘটে। যখন একটি AJAX অনুরোধ (কারণ স্টপ একটি beforeSendমাধ্যমে পরিত্যাগreturn false অথবা একটি Ajax কল completeফাংশন রান ):

if ( s.global && ! --jQuery.active ) {
  jQuery.event.trigger( "ajaxStop" );
}

এটিই $.ajaxStop()ঘটনাকে আগুন জ্বালানোর কারণ হিসাবে, অনুরোধের সংখ্যা 0 এ চলে গেছে, যার অর্থ শেষ যুগপত AJAX কল শেষ হয়েছে। অন্যান্য বিশ্বব্যাপী AJAX এর হ্যান্ডেলার পাশাপাশি পথ ধরে সেখানে আগুন।


2
আমি দেখেছি এটি jQuery নভিস টু নিনজা (2010)
jmav

@ নিক: আপনার ব্যাখ্যা অনুসারে .জ্যাক্সটপ প্রতিটি এজাক্স কল শেষ হওয়ার পরে কার্যকর করা হবে। তবে, সমস্ত অজ্যাক্স কল সম্পূর্ণ হলে এটি কল করা হবে। আমি ভুল হলে আপনি কি আমাকে সংশোধন করতে পারেন?
কিশোর রেলেঙ্গি

27
এটি এখন বলা হয় $.active, বিটিডব্লিউ।
রায়ান বিগ

4
@ রায়ানবিগ $কেবলমাত্র একটি উপদেষ্টা নয় jQuery, তাই উভয় এখনও সত্য?
আর্ক্সপেটিকা

2
শুধুমাত্র আপনি চালাচ্ছেন @ArxPoetica jQueryছাড়া noConflict
রায়ান বিগ 21

19

যে কেউ JSONP অনুরোধগুলির সাথে jQuery.active ব্যবহার করার চেষ্টা করছেন (যেমন আমি ছিলাম) আপনাকে এটি দিয়ে এটি সক্ষম করতে হবে:

jQuery.ajaxPrefilter(function( options ) {
    options.global = true;
});

মনে রাখবেন যে ব্যর্থতাগুলি ধরার জন্য আপনার JSONP অনুরোধের সময়সীমা দরকার।

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