ডিসেম্বর 2017 এ দ্রুত এগিয়ে যাওয়ার জন্য, ওয়েবসাইটসকেটগুলি প্রতিটি ব্রাউজার দ্বারা (কার্যতঃ) সমর্থিত হয় এবং তাদের ব্যবহার খুব সাধারণ।
তবে, এর অর্থ এই নয় যে ওয়েবসাইটসকেটগুলি এজেএক্সকে প্রতিস্থাপন করতে সক্ষম হয়েছিল, কমপক্ষে পুরোপুরি নয়, বিশেষত এইচটিটিপি / ২ অভিযোজন বাড়ছে।
সংক্ষিপ্ত উত্তরটি হ'ল ওয়েবসকেটগুলি ব্যবহার করার পরেও, এজেন্টগুলি এখনও বেশিরভাগ আরএসইটি অ্যাপ্লিকেশনগুলির জন্য দুর্দান্ত। তবে godশ্বর বিশদে আছেন, তাই ...:
ভোটগ্রহণের জন্য এজেএক্স?
ভোটদানের জন্য (বা দীর্ঘ ভোটদানের জন্য) এজেএক্সের ব্যবহার মরে যাচ্ছে (এবং এটি হওয়া উচিত) তবে এটি এখনও দুটি ভাল কারণে (মূলত ছোট ওয়েব অ্যাপ্লিকেশনের জন্য) ব্যবহারে রয়েছে:
অনেক বিকাশকারীদের জন্য, এজাক্স কোড করা আরও সহজ, বিশেষত যখন ব্যাকএন্ড কোডিং এবং ডিজাইনের ক্ষেত্রে আসে।
এইচটিটিপি / ২ দিয়ে, এজেএক্সের সাথে সম্পর্কিত সর্বাধিক ব্যয় (নতুন সংযোগ স্থাপন) মুছে ফেলা হয়েছিল, বিশেষ করে ডেটা পোস্ট এবং আপলোড করার জন্য এজেএক্স কলগুলি বেশ পারফরম্যান্স হতে দেয়।
তবে, ওয়েবসকেট পুশ এজেএক্সের চেয়ে অনেক উচ্চতর (হেডারের পুনরায় প্রমাণীকরণ বা পুনরায় প্রেরণ করার দরকার নেই, "কোনও ডেটা" রাউন্ডট্রিপস ইত্যাদির প্রয়োজন নেই)। এটি নিয়ে আলোচনা হয়েছিল বেশ কয়েকবার ।
বিশ্রামের জন্য আজাক্স?
এজ্যাক্সের জন্য আরও ভাল ব্যবহার হ'ল রিস্ট এপিআই কল। এই ব্যবহারটি কোড বেসটিকে সহজতর করে এবং ওয়েবসকেট সংযোগকে ব্লক করা থেকে বিরত করে (বিশেষত মাঝারি আকারের ডেটা আপলোডগুলিতে)।
আরএসটি এপিআই কল এবং ডেটা আপলোডের জন্য এজ্যাক্সকে প্রাধান্য দেওয়ার জন্য অনেকগুলি বাধ্যতামূলক কারণ রয়েছে :
এজেএক্স এপিআই বাস্তবিকভাবে আরএসটি এপিআই কলগুলির জন্য ডিজাইন করা হয়েছিল এবং এটি দুর্দান্ত।
আরএএসএস কল এবং আপলোডগুলি এজেএক্স ব্যবহার করে ক্লায়েন্ট এবং ব্যাকএন্ড উভয় ক্ষেত্রে কোড করা উল্লেখযোগ্যভাবে সহজ।
ডেটা পেলোড বাড়ার সাথে সাথে মেসেজ ফ্র্যাগমেন্টেশন / মাল্টিপ্লেক্সিং লজিক কোড কোড না করা থাকলে ওয়েবসকেট সংযোগগুলি ব্লক হয়ে যেতে পারে।
যদি কোনও আপলোড কোনও একক ওয়েবসাইটকে করা হয় send
, আপলোড শেষ না হওয়া অবধি এটি একটি ওয়েবসকেট স্ট্রিমটিকে অবরুদ্ধ করতে পারে। এটি কর্মক্ষমতা হ্রাস করবে, বিশেষত ধীর ক্লায়েন্টদের ক্ষেত্রে।
একটি সাধারণ নকশা ওয়েবকেকেটের উপরে স্থানান্তরিত ছোট বিড়ি বার্তা ব্যবহার করে যখন আরইএসটি এবং ডেটা আপলোডগুলি (ক্লায়েন্ট টু সার্ভার) ওয়েবেজকেটকে আটকাতে বাধা দেওয়ার জন্য এজেএক্সের ব্যবহারের সহজতা লাভ করে।
তবে বৃহত্তর প্রকল্পগুলিতে, ওয়েবসকেটগুলির দ্বারা প্রদত্ত নমনীয়তা এবং কোড জটিলতা এবং রিসোর্স ম্যানেজমেন্টের মধ্যে ভারসাম্য হ'ল ওয়েবসাইটকেটের পক্ষে ভারসাম্য রক্ষা করবে।
উদাহরণস্বরূপ, ওয়েবসকেট ভিত্তিক আপলোডগুলি কোনও সংযোগ ফেলে দেওয়ার পরে পুনরায় প্রতিষ্ঠিত হওয়ার পরে বৃহত্তর আপলোডগুলি পুনরায় শুরু করার ক্ষমতা দিতে পারে (মনে রাখবেন যে আপনি 5 জিবি চলচ্চিত্র আপলোড করতে চেয়েছিলেন?)
আপলোড বিভাজন যুক্তিকে কোড করে, কোনও বাধা আপলোড পুনরায় শুরু করা সহজ (শক্ত অংশটি কোডিং করছিল)।
এইচটিটিপি / 2 পুশ সম্পর্কে কী?
আমার সম্ভবত এটি যুক্ত করা উচিত যে এইচটিটিপি / 2 টি পুশ বৈশিষ্ট্যটি ওয়েবসকেটগুলি প্রতিস্থাপন করে না (এবং সম্ভবত এটি করতে পারে না)।
এটি এখানে আগে আলোচনা করা হয়েছিল, তবে এটি উল্লেখ করার পক্ষে যথেষ্ট যে একটি একক HTTP / 2 সংযোগ পুরো ব্রাউজারটিকে (সমস্ত ট্যাব / উইন্ডো) পরিবেশন করে, তাই এইচটিটিপি / 2 দ্বারা চালিত ডেটা এটি কোন ট্যাব / উইন্ডোর সাথে সম্পর্কিত তা জানে না, ওয়েবসাইটকে নির্দিষ্ট নির্দিষ্ট ব্রাউজারের ট্যাব / উইন্ডোতে সরাসরি ডেটা ঠেকানোর ক্ষমতা প্রতিস্থাপনের ক্ষমতা হ্রাস করা।
যদিও ওয়েবসাইটসকেটগুলি দ্বি-দিকনির্দেশক ডেটা যোগাযোগের জন্য দুর্দান্ত তবে এজেএক্স এখনও অনেকগুলি সুবিধা নিয়েছে - বিশেষত যখন বড় আকারের পেডগুলি (আপলোডগুলি ইত্যাদি) বিবেচনা করে।
এবং সুরক্ষা?
ঠিক আছে, সাধারণত, একজন প্রোগ্রামারকে যত বেশি আস্থা ও নিয়ন্ত্রণ দেওয়া হয়, তত বেশি শক্তিশালী সরঞ্জাম ... এবং সুরক্ষা উদ্বেগ যে আরও বেড়ে যায়।
প্রকৃতি অনুসারে এজেএক্সের উপরের হাতটি থাকবে, কারণ এটি সুরক্ষা ব্রাউজারের কোডটিতে নির্মিত (যা কখনও কখনও প্রশ্নযুক্ত, তবে এটি এখনও আছে)।
অন্যদিকে, এজেএক্স কলগুলি "মাঝখানে মানুষ" আক্রমণগুলির জন্য বেশি সংবেদনশীল, অন্যদিকে ওয়েবসাইটসকেটস সুরক্ষা সমস্যাগুলি সাধারণত অ্যাপ্লিকেশন কোডে বাগগুলি থাকে যা একটি সুরক্ষা ত্রুটি প্রবর্তন করে (সাধারণত ব্যাকএন্ড প্রমাণীকরণের যুক্তি যেখানে আপনি এটি পাবেন)।
ব্যক্তিগতভাবে আমি এটি কোনও তাত্পর্যপূর্ণ বলে মনে করি না, যদি আমার মনে হয় ওয়েবসকেটগুলি কিছুটা ভাল হয়, বিশেষত যখন আপনি জানেন যে আপনি কী করছেন।
আমার বিনীত মতামত
আইএমএইচও, আমি আরএসটি এপিআই কল ব্যতিরেকে সমস্ত কিছুর জন্য ওয়েবসাইটসকেট ব্যবহার করব। বড় ডেটা আপলোডগুলি আমি টুকরো টুকরো করতাম এবং সম্ভব হলে ওয়েবসাইটসকেটগুলিতে প্রেরণ করতাম।
পোলিং, আইএমএইচও, নিষিদ্ধ করা উচিত, নেটওয়ার্ক ট্র্যাফিকের ব্যয় হ্রাস এবং ওয়েবকেট পুশ এমনকি নতুন বিকাশকারীদের জন্য পরিচালনা করা যথেষ্ট সহজ।