এক্সএমএলএইচটিপিআরকুয়েস্টের বিভিন্ন রেডিস্টেটগুলি কী বোঝায় এবং আমি সেগুলি কীভাবে ব্যবহার করতে পারি?


113

XMLHttpRequestএর 5 readyStateটি রয়েছে এবং আমি কেবল তাদের 1 টি (শেষটি, 4) ব্যবহার করি।

অন্যরা কীসের জন্য এবং আমি কী ব্যবহারিক অ্যাপ্লিকেশনগুলিতে সেগুলি ব্যবহার করতে পারি?

উত্তর:


172

readyStateমানগুলির সম্পূর্ণ তালিকাটি হ'ল:

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

( https://www.w3schools.com/js/js_ajax_http_response.asp থেকে )

অনুশীলনে আপনি 4 ব্যতীত প্রায় কোনওটিই ব্যবহার করবেন না।

কিছু এক্সএমএলএইচটিপিপিউকাস্ট বাস্তবায়ন আপনাকে responseTextকখন আংশিকভাবে প্রাপ্ত প্রতিক্রিয়া দেখতে দেয় readyState==3, তবে এটি সর্বজনীনভাবে সমর্থিত নয় এবং এর উপর নির্ভর করা উচিত নয়।


5
স্থানান্তর ত্রুটিগুলি এখনও রেডিস্টেটকে 4 এ আপডেট করে However তবে, সম্পূর্ণরূপে বাধা স্থানান্তর রেডিস্টেটকে 0 এ পুনরায় সেট করবে So সুতরাং, পুনঃনির্দেশের ফলে স্থানান্তরটির একটি ত্রুটি আসলেই একটি "ত্রুটি" নয় এবং আপনি লগিং উপেক্ষা করতে বেছে নিতে পারেন xhr এর রেডিস্টেট যদি 0 হয় তবে ত্রুটিটির প্রতিবেদন করাটা কিছুটা নাজুক এবং আপনার ইভেন্টটি / ত্রুটিটি "অবশ্যই" থাকতে হবে "লগইন করা উচিত কিনা তার উপর নির্ভর করে আপনার মাইলেজটি পৃথক হতে পারে। যদি এটি পরে হয় তবে আপনি বিরল ঘটনাটি হারাতে পারবেন যা 0 এর রেডিস্টেটের সাথে ত্রুটিও হতে পারে
গ্রেগ পেটিট

2
তার পরামর্শের জন্য @ ম্যাটবিয়ানকোতে +1 করুন। আমি আরও যোগ করতে চাই যে মোজিলা বিকাশকারী নেটওয়ার্ক এমডিএন আপনার সমস্ত জাভাস্ক্রিপ্ট / এইচটিএমএল / সিএসএস প্রয়োজনীয়তার জন্য তাত্ক্ষণিকভাবে সবচেয়ে জনপ্রিয় এবং বিশ্বাসযোগ্য রেফারেন্স সাইটগুলির মধ্যে একটি। গুগল অনুসন্ধান করার সময়, আপনার ক্যোয়ারীটি "এমডএনএন" দিয়ে প্রিন্ট করুন এবং আপনি নিজেকে কিছুটা মাথা ব্যথা বাঁচাতে পারবেন।
দোনেডেস্টা মাইকুলো

@ গ্রেগপেটিট, আমরা ইন্টারনেট সংযোগের জন্য রেডস্টেট 0 ব্যবহার করতে পারি না, বা "অনুরোধটি আরম্ভ করা হয়নি" এমন কোনও কারণ রয়েছে যা উপস্থিত রয়েছে
বিশাল শর্মা

4
আমি নিশ্চিত নই, @ বিশালশর্মা - যেমনটি আমি মনে করি, অনুরোধ শুরু না করা অবধি রেডস্টেটটি 0 হয়। এর পরে, অন্য কোনও "সমাপ্তি" (হয় সাফল্য বা ত্রুটি দ্বারা) রেডস্টেটটি ৪ এ আপডেট করবে So সুতরাং স্থানান্তর শুরু হওয়ার পরে ইন্টারনেট হারানো এটি ৪ এ ফিরে যাবে, 0 এ ফিরে আসবে না the চেষ্টা করা হয়েছে, এটি এখনও 0 এ থাকা উচিত; হ্যান্ডশেক করার পরে এটি কেবল 1 এ চলে যাবে।
গ্রেগ পেটিট

রেডিস্টেট 2 এর ব্যাখ্যাটি ভুল - বা কমপক্ষে সম্পূর্ণ বিভ্রান্তিকর। শুরুর অনুরোধটি প্রেরণ করা হয়েছিল, কিন্তু সেই রাজ্যগুলি আসলে বলে যে সমস্ত চূড়ান্ত প্রতিক্রিয়া শিরোনাম পেয়েছিল।
ইনটা

32

কাইরনের উত্তরে ডাব্লু 3 স্কুল রেফ রয়েছে। যার উপর কেউ নির্ভর করে না, বোবিন্সের উত্তরটি লিঙ্ক দেয়, যা আসলে আইই এর স্থানীয় প্রয়োগের কথা বলে,

রেডস্টেট কী প্রতিনিধিত্ব করে তা সঠিকভাবে বোঝার জন্য এখানে মূল ডকুমেন্টেশনটি উদ্ধৃত করা হয়েছে:

এক্সএমএলএইচটিপিআরকোয়েস্ট অবজেক্টটি বেশ কয়েকটি রাজ্যে থাকতে পারে। রেডিস্টেট অ্যাট্রিবিউটকে অবশ্যই বর্তমান অবস্থায় ফিরিয়ে আনতে হবে, যা নিম্নলিখিত মানগুলির মধ্যে একটি হতে হবে:

UNSENT (সংখ্যার মান 0)
অবজেক্টটি তৈরি করা হয়েছে।


খোলা (সংখ্যাগত মান 1) উন্মুক্ত () পদ্ধতিটি সফলভাবে শুরু করা হয়েছে। এই রাষ্ট্রের সময় অনুরোধ শিরোনামগুলি সেটরেকুস্টহাইডার () ব্যবহার করে সেট করা যায় এবং প্রেরণ () পদ্ধতিটি ব্যবহার করে অনুরোধ করা যেতে পারে।

HEADERS_RECEIVED (সংখ্যার মান 2)
সমস্ত পুনঃনির্দেশগুলি (যদি থাকে তবে) অনুসরণ করা হয়েছে এবং চূড়ান্ত প্রতিক্রিয়াটির সমস্ত HTTP শিরোনাম প্রাপ্ত হয়েছে। অবজেক্টের বেশ কয়েকটি প্রতিক্রিয়া সদস্য এখন উপলব্ধ।

লোডিং (সংখ্যার মান 3)
প্রতিক্রিয়া সত্তা বডিটি গ্রহণ করা হচ্ছে।

সম্পন্ন (সংখ্যার মান 4)
ডেটা স্থানান্তর সম্পন্ন হয়েছে বা স্থানান্তরকালে কিছু ভুল হয়েছে (যেমন অসীম পুনঃনির্দেশ)।

দয়া করে এখানে পড়ুন: ডাব্লু 3 সি রেডিস্টেটের ব্যাখ্যা


@ চার্লসউড, আমার জন্য চ্যালেঞ্জ ছিল এখানে স্ট্যাকওভারফ্লো মার্কডাউন সম্পাদক ডাব্লু 3 সি-র উল্লেখ গ্রহণ করবে না .. তাই পরীক্ষা করে দেখুন আমি goo.gl থেকে সংক্ষিপ্ত ইউআরএল রেখেছি .... কেন এটি আমাকে সরাসরি রাখার অনুমতি দেবে না তা আমি বুঝতে পারি না w3c url ...
বিশাল শর্মা

হু, আমি স্যান্ডবক্সে এটি চেষ্টা করেছি এবং দেখে মনে হচ্ছে এটি কার্যকর হবে।
চার্লস উড

22

আসল সুনির্দিষ্ট ডকুমেন্টেশন

0, 1এবং 2কেবলমাত্র আপনি এতক্ষণ কল করেছেন এমন একটি অনুরোধ করার জন্য প্রয়োজনীয় কতগুলি পদ্ধতির ট্র্যাক করুন।

3 আপনাকে বলে যে সার্ভারের প্রতিক্রিয়া আসতে শুরু করেছে But তবে আপনি যখন এটি ব্যবহার করছেন XMLHttpRequest কোনও ওয়েব পৃষ্ঠা থেকে অবজেক্টটি প্রায় কিছুই নেই (*) আপনি সেই তথ্যটি করতে পারেন, যেহেতু আপনার অনুমোদিত বর্ধিত বৈশিষ্ট্যগুলিতে অ্যাক্সেস নেই that আপনি আংশিক তথ্য পড়তে।

readyState 4 এমন একমাত্র যা কোনও অর্থ ধারণ করে।

(*: রেডিস্টেটের জন্য যাচাই করার জন্য আমি যে একমাত্র অনুমেয় ব্যবহারের কথা ভাবতে পারি 3তা হ'ল এটি সার্ভারের শেষে জীবনের কোনও রূপের সংকেত দেয়, তাই আপনি যখন এটি গ্রহণ করবেন তখন আপনি সম্পূর্ণ প্রতিক্রিয়াটির জন্য অপেক্ষা করার সময়টি সম্ভবত বাড়িয়ে দিতে পারেন increase)


1

অনডিস্টেটেঞ্জেঞ্জ একটি ফাংশন (বা কোনও ফাংশনের নাম) স্টোর করে প্রতিবার স্বয়ংক্রিয়ভাবে ডাকা হবে রেডিস্টেট সম্পত্তি পরিবর্তিত হয় স্টেট XMLHttpRequest এর স্থিতি ধরে রাখে। 0 থেকে 4 পর্যন্ত পরিবর্তন:

0: অনুরোধ আরম্ভ করা হয়নি

1: সার্ভার সংযোগ স্থাপন করা হয়েছে

2: অনুরোধ প্রাপ্ত

3: অনুরোধ প্রক্রিয়াকরণ

4: অনুরোধ সমাপ্ত এবং প্রতিক্রিয়া প্রস্তুত

অবস্থা 200: "ঠিক আছে"

404 পৃষ্ঠা খুঁজে পাওয়া যায়নি


0
  • 0: UNSENT ক্লায়েন্ট তৈরি করা হয়েছে। খোলা () এখনও বলা হয় নি।
  • 1: ওপেনড ওপেন () ডাকা হয়েছে।
  • 2: HEADERS_RECEIVED প্রেরণ () কল করা হয়েছে, এবং শিরোনাম এবং স্থিতি উপলব্ধ।
  • 3: লোডিং ডাউনলোডিং; প্রতিক্রিয়া পাঠ্য আংশিক তথ্য রাখে।
  • 4: সম্পন্ন অপারেশন সম্পূর্ণ।

(Https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState থেকে)

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