কোন পদ্ধতির পরিস্থিতি সবচেয়ে ভাল তা আমি কীভাবে জানতে পারি? কার্যকারিতা এবং পারফরম্যান্সের ক্ষেত্রে পার্থক্য জানতে কি কেউ কিছু উদাহরণ সরবরাহ করতে পারেন?
কোন পদ্ধতির পরিস্থিতি সবচেয়ে ভাল তা আমি কীভাবে জানতে পারি? কার্যকারিতা এবং পারফরম্যান্সের ক্ষেত্রে পার্থক্য জানতে কি কেউ কিছু উদাহরণ সরবরাহ করতে পারেন?
উত্তর:
XMLHttpRequest
কাঁচা ব্রাউজার অবজেক্ট যা jQuery একটি আরও ব্যবহারযোগ্য এবং সরলীকৃত ফর্ম এবং ক্রস ব্রাউজারের ধারাবাহিক কার্যকারিতাতে মোড়ানো।
jQuery.ajax
jQuery এর একটি সাধারণ অ্যাজাক্স যা কোনও প্রকার এবং সামগ্রী অনুরোধ করতে পারে requ
jQuery.get
এবং jQuery.post
অন্যদিকে কেবল জিইটি এবং পোষ্ট অনুরোধ জারি করতে পারে। এগুলি কী তা আপনি যদি না জানেন তবে আপনার HTTP প্রোটোকলটি পরীক্ষা করা উচিত এবং কিছুটা শিখতে হবে। অভ্যন্তরীণভাবে এই দুটি ফাংশন ব্যবহার করে jQuery.ajax
তবে তারা নির্দিষ্ট সেটিংস ব্যবহার করে যা আপনাকে নিজেকে আর সেট করতে হবে না ব্যবহারের তুলনায় জিইটি বা পোষ্ট অনুরোধটিকে সহজ করে তুলতে jQuery.ajax
। GET এবং পোষ্ট যেকোনোভাবে সর্বাধিক ব্যবহৃত HTTP পদ্ধতি হ'ল (ডিলেট, পুট, হেড বা এমনকি অন্যান্য কদাচিৎ ব্যবহৃত বহিরাগতের তুলনায়)।
সমস্ত jQuery ফাংশন ব্যবহার XMLHttpRequest
পটভূমিতে অবজেক্ট তবে অতিরিক্ত কার্যকারিতা সরবরাহ করে যা আপনাকে নিজের করতে হবে না।
তাই আপনি যদি jQuery ব্যবহার করেন তবে আমি দৃ strongly়ভাবে আপনাকে কেবল jQuery কার্যকারিতা ব্যবহার করার পরামর্শ দিচ্ছি । XMLHttpRequest
পুরোপুরি সম্পর্কে ভুলে যান । উপযুক্ত jQuery অনুরোধ ফাংশন তারতম্য এবং অন্যান্য সমস্ত ক্ষেত্রে ব্যবহার করুন $.ajax()
। তাই ভুলবেন না অন্যান্য আছে সাধারণ jQuery এর আয়াক্স এর সাথে সম্পর্কিত ফাংশন থেকে $.get()
, $.post()
এবং $.ajax()
। ঠিক আছে আপনি $.ajax()
আপনার সমস্ত অনুরোধের জন্য কেবল ব্যবহার করতে পারেন তবে আপনাকে আরও কিছু কোড লিখতে হবে, কারণ এটির কল করতে আরও কিছু বিকল্প প্রয়োজন options
এটি এমন একটি গাড়ি ইঞ্জিন যা আপনি নিজের কাছাকাছি একটি স্টিয়ারিং, ব্রেক ইত্যাদি দিয়ে একটি পুরো গাড়ি তৈরি করতে চান তা কিনতে সক্ষম হবেন ... গাড়ি প্রস্তুতকারকরা একটি বন্ধুত্বপূর্ণ ইন্টারফেস (প্যাডেলস, স্টিয়ারিং হুইল ইত্যাদি) দিয়ে সম্পূর্ণ গাড়ি তৈরি করে সুতরাং আপনাকে এটি নিজেই করতে হবে না।
$.post
এবং $.get
একমাত্র জিনিস ধীরে ধীরে হয় কোড কল করার আগে একটি অল্প পরিমাণ কোড $.ajax
। তবে আপনি যদি এক্সএইচআর ব্যবহার করে আপনার নিজের রুটিনগুলি সরাসরি লিখেন তবে জিনিসগুলি কিছুটা অপ্টিমাইজড হতে পারে তবে এটি আরও বগিযুক্ত হতে পারে। আমি আপনাকে jQuery দিকে রাখার পরামর্শ দিচ্ছি। এটি আপনার জীবনকে আরও সহজ করে তুলবে। এবং এ্যাসিঙ্ক কল কোডটি ইস্যু করার চেয়ে অনেক বেশি সময় নিচ্ছে তা বিবেচনা করে আপনি সম্ভবত এই কলগুলির মধ্যে কোনও স্পষ্ট পার্থক্য লক্ষ্য করবেন না।
$.ajax
আপনার কলগুলিকে যেকোন জায়গায় সামঞ্জস্যপূর্ণ করতে যেতে পারেন। যতক্ষণ না আপনি এক্সএইচআর সরাসরি ব্যবহার করেন না আপনি এটি কোনওভাবেই করা ভাল।
তাদের প্রত্যেকে এক্সএমএলএইচটিপিআরকোয়েস্ট ব্যবহার করে। অনুরোধটি করতে ব্রাউজারটি এটি ব্যবহার করে। jQuery হ'ল একটি জাভাস্ক্রিপ্ট লাইব্রেরি এবং XMLHttpRequest তৈরি করতে $ .জ্যাক্স পদ্ধতিটি ব্যবহৃত হয়।
$ .পোস্ট এবং $ .get কেবলমাত্র শর্টহ্যান্ড সংস্করণ $.ajax
। তারা বেশ একই কাজ করে তবে একটি এজেএক্স অনুরোধ লিখতে তত দ্রুত করে $.post
তোলে - একটি HTTP পোস্ট অনুরোধ করে এবং $.get
এইচটিটিপি পেতে অনুরোধ করে makes
GET
অনুরোধটি ইউআরএল স্ট্রিংয়ের সমস্ত ডেটা প্রেরণ করবে - যা ক্লায়েন্ট / সার্ভারের মাধ্যমে সীমাবদ্ধ করা যেতে পারে ( স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ২6565৯৯৫৫২/২ )। একটি POST
অনুরোধ শিরোনামে সমস্ত ডেটা প্রেরণ করে, তাই URL আকারের সীমাটি কোনও সমস্যা হওয়া উচিত নয় (যদি না আপনার স্ক্রিপ্টে সত্যিই দীর্ঘ ফাইল এবং ফোল্ডারের নাম না থাকে!)।
GET
। যদি আপনি কোনও কিছু প্রেরণ করতে চাইছেন (যেমন একটি টুইট পোস্ট করা) তবে ব্যবহার করুন POST
,
jQuery.get
একটি মোড়ক জন্য jQuery.ajax
যা এক্সএমএলএইচটিপিআরকুয়েস্টের মোড়ক।
এক্সএমএলএইচটিপিআরকোয়েস্ট এবং আনুন এপিআই (এই সময়ে পরীক্ষামূলক) একমাত্র ডিওএম এ, তাই দ্রুত হওয়া উচিত।
আমি প্রচুর তথ্য দেখেছি যা আর সঠিক নয়, তাই আমি একটি পরীক্ষার পৃষ্ঠা তৈরি করেছি যেখানে যে কোনও সংস্করণ থেকে যে কোনও সংস্করণ যে কোনও সময়ে সেরা is
https://jsperf.com/xhr-vs-jquery-ajax-vs-get-vs-fetch
আমার পরীক্ষাগুলি থেকে আজ দেখা যাচ্ছে যে কেবল jQuery একটি পরিষ্কার বা এমনকি দ্রুত সমাধান নয়, মোবাইল বা ডেস্কটপে আমার জন্য ফলাফলগুলি দেখায় যে আপনি যদি খুব বেশি এজ্যাক্স ব্যবহার করেন তবে jQuery কমপক্ষে XHR2 এর চেয়ে 80% ধীর are মোবাইলে এটি একটি সহজ সাইট লোড করতে অনেক সময় লাগবে।
ব্যবহার নিজেই লিঙ্কে আছে।
jQuery.post এবং jQuery.get সাধারণ পৃষ্ঠার ভারসাম্যগুলি অনুকরণ করে, যা বলে, আপনি একটি সাবমিট বাটনে ক্লিক করুন এবং এটি আপনাকে একটি নতুন পৃষ্ঠায় নিয়ে যায় (বা একই পৃষ্ঠা পুনরায় লোড করে)। সার্ভারে ডেটা যেভাবে প্রেরণ করা হয় সেভাবে পোস্ট করুন এবং কিছুটা আলাদা হয়ে যান (এটি সম্পর্কে ভাল নিবন্ধটি এখানে পাওয়া যাবে ।
jQuery.ajax এবং XMLHttpRequest পৃষ্ঠাটি পোস্টের মতোই বোঝা হয় এবং পেজ পরিবর্তিত হয় না except সার্ভারটি যে তথ্যই দেয় তা স্থানীয়ভাবে জাভাস্ক্রিপ্ট দ্বারা পৃষ্ঠা বিন্যাস সংশোধন সহ যে কোনও উপায়ে ব্যবহার করা যেতে পারে। তারা সাধারণত অ্যাসিক্রোনাস কাজ করতে ব্যবহৃত হয় যখন ব্যবহারকারী এখনও পৃষ্ঠাটি নেভিগেট করতে পারে। এর ভাল উদাহরণ হ'ল একটি পাঠ্য ক্ষেত্রটি সম্পূর্ণ করতে ডাটাবেস মানগুলি থেকে গতিশীল লোড করে স্বয়ংক্রিয়রূপ ক্ষমতা। JQuery.ajax এবং XMLHttpRequest এর মধ্যে মৌলিক পার্থক্য হ'ল jQuery.ajax একই প্রভাব অর্জন করার জন্য XMLHttpRequest ব্যবহার করে তবে একটি সহজ ইন্টারফেস। আপনি যদি jQuery ব্যবহার করেন তবে আমি আপনাকে jQuery.ajax এর সাথে লেগে থাকতে উত্সাহিত করব।
পুরানো পোস্ট। তবে এখনও উত্তর দিতে চাই, ওয়েব ওয়ার্কার্স (জাভাস্ক্রিপ্ট) এর সাথে কাজ করার সময় আমি একটি পার্থক্যের মুখোমুখি হয়েছি
ওয়েব কর্মীদের কোনও UI- স্তরের অ্যাক্সেস থাকতে পারে না। এর অর্থ আপনি জাভাস্ক্রিপ্ট কোডটিতে যে কোনও ডিওএম উপাদান অ্যাক্সেস করতে পারবেন না যা আপনি ওয়েব কর্মী ব্যবহার করে চালানোর ইচ্ছা করেন window উইন্ডো, ডকুমেন্ট এবং প্যারেন্টের মতো বিষয়গুলি ওয়েব-কর্মী কোডে অ্যাক্সেস করা যায় না।
যেহেতু আমরা জানি যে jQuery লাইব্রেরি এইচটিএমএল ডিওএম-এর সাথে আবদ্ধ, এবং এটি দিয়ে দেওয়া হচ্ছে "কোনও ডোম অ্যাক্সেস নেই" নিয়ম লঙ্ঘন করা। এটি কিছুটা বেদনাদায়ক হতে পারে কারণ ওয়েব কর্মীদের মধ্যে jQuery.ajax, jQuery.post, jQuery.get এর মতো পদ্ধতি ব্যবহার করা যায় না। ভাগ্যক্রমে, আপনি Ajax অনুরোধ করতে XMLHttpRequest অবজেক্টটি ব্যবহার করতে পারেন ।
যতক্ষণ না jQuery পদ্ধতিগুলি রয়েছে .post
এবং .get
কেবল .ajax
অভ্যন্তরীণভাবে করা যায়, তাদের উদ্দেশ্য হ'ল অপ্রয়োজনীয় বিকল্পগুলির কিছু বিমূর্ত করা .ajax
এবং যথাক্রমে সেই ধরণের অনুরোধের জন্য উপযুক্ত কিছু ডিফল্ট সরবরাহ করা।
আমি সন্দেহ করি যে 3 এর কারও মধ্যে পারফরম্যান্সে অনেক পার্থক্য রয়েছে।
.ajax
নিজেই পদ্ধতি একটি XMLHttpRequest- এর, এটা ব্যাপকভাবে jQuery এর বাকি অনুযায়ী অপ্টিমাইজ করা করব, কিন্তু যেন আপনি পুরো মিথষ্ক্রিয়া নিজেকে উপযোগী এটি সম্ভবত দক্ষ হিসাবে হবে না করেন .. কিন্তু যে কোড প্রচুর বা লেখার পার্থক্য লেখা jQuery.ajax
।