.Success () এবং। কমপ্লিট () এর মধ্যে পার্থক্য?


103

JQuery এর 1.5 পর্যন্ত সমস্ত jQuery যাক AJAX পদ্ধতি একটি ফিরতি jqXHRবস্তুর প্রদান করে যে .error(), .success()আর .complete()পদ্ধতি।

মধ্যে পার্থক্য কি .success()এবং .complete()?


2
@ নিক্স আপনার কি এমন কোনও লিঙ্ক রয়েছে যা অবহিত পদার্থকে আরও বিশদে বিশদে বর্ণনা করে?
নিউনি

apie.jquery.com/jQuery.ajax/- এ @neoneye Ctrl + F "অবমূল্যায়নের বিজ্ঞপ্তি"
ThatGuy

উত্তর:


223

.success()কেবল তখনই ডাকা হয় যখন আপনার ওয়েবসার্ভার 200 OKএইচটিটিপি শিরোনামের সাথে প্রতিক্রিয়া জানায় - মূলত যখন সবকিছু ঠিক থাকে।

যাইহোক, এজাক্স কলটি সফল হয়েছিল কি না .complete()তা সবসময়ই ডেকে আনা হবে - সম্ভবত এটি ত্রুটিগুলি আউটপুট করে একটি ত্রুটি ফিরে পেয়েছিল - সম্পূর্ণ () এখনও কল হবে।

এটি উল্লেখযোগ্য যে এটি কল করার পরে কল.complete() হবে - যদি এটি আপনার পক্ষে গুরুত্বপূর্ণ। .success()


11

success()যখন সার্ভারটি 200 টি স্ট্যাটাস কোড দেয়, complete()তখন তাকে অনুরোধ করা হয় যখন অনুরোধটি সম্পূর্ণ হয়, ফলাফলটি বিবেচনা করা হয় না always


1

success()সার্ভার রিটার্ন যখন বলা 200 স্থিতি কোড, complete()পরে বলা হয় success()। এবং আমি কিছু পার্থক্য দেখতে পাচ্ছি:

উপর success()আপনি XML প্রতিক্রিয়া স্ট্রিং আপনার ব্যবহার করা পেতে না পেতে পারেন $.ajax()এবং সেট dataType:xml কিন্তু এ complete()আপনি পরেছি XML ডকুমেন্টের স্ট্রিং বিন্যাস পেতে পারেন ব্যবহার

$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})

0

success()বলা হয় যখন সার্ভার রিটার্ন success status code, মত: 200, 201ইত্যাদি

complete()অনুরোধটি সম্পূর্ণ হলে সর্বদা ডাকা হয়। (কোনও বিষয় নয়, এটি সার্ভারের সাফল্য / ত্রুটির প্রতিক্রিয়া))


সুতরাং,

  • যখন successসার্ভার থেকে প্রতিক্রিয়া আসে: complete()এবং success()তাকে ডাকা হয়।
  • যখন errorসার্ভার থেকে প্রতিক্রিয়া আসে: complete()এবং error()তাকে ডাকা হয়।

আপনি কী উদ্দেশ্যে ব্যবহার করতে পারেন complete(): ধরুন beforeSend()আপনি একটি দেখান loader imageএবং complete()এটিতে আপনি এটি লুকিয়ে রাখতে পারেন loader image

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