জেএসএফ ২.০ অসুবিধা? সত্যিকার অর্থে, যখন আপনার কাছে ওয়েব ওয়েব ডেভলপমেন্ট (এইচটিএমএল / সিএসএস / জেএস, সার্ভার সাইড বনাম ক্লায়েন্ট সাইড ইত্যাদি) এবং বেসিক জাভা সার্ভলেট এপিআই (অনুরোধ / প্রতিক্রিয়া / সেশন ) সম্পর্কে কোনও শক্ত পটভূমি জ্ঞান না থাকে তখন আপেক্ষিক খাড়া শেখার বক্রতা বাদে , ফরওয়ার্ডিং / পুনঃনির্দেশকরণ ইত্যাদি) কোনও গুরুতর অসুবিধা মাথায় আসে না। জেএসএফকে তার বর্তমান প্রকাশে এখনও প্রাথমিক যুগের সময়ে প্রাপ্ত নেতিবাচক চিত্র থেকে মুক্তি পাওয়া দরকার, যার মধ্যে বেশ কয়েকটি গুরুতর অসুবিধা ছিল।
জেএসএফ 1.0 (মার্চ 2004)
এটি ছিল প্রাথমিক প্রকাশ। মূল এবং পারফরম্যান্স উভয় ক্ষেত্রেই আপনি এটি জানতে চান না এটিতে বাগগুলি ছড়িয়ে পড়েছিল। আপনার ওয়েব অ্যাপ্লিকেশনটি যেমন আপনি স্বজ্ঞাতভাবে আশা করেন তেমন কাজ করে না। বিকাশকারী হিসাবে আপনি কাঁদতে দৌড়ে পালিয়ে যাবেন।
জেএসএফ 1.1 (মে 2004)
এটি বাগফিক্স প্রকাশ ছিল। পারফরম্যান্স এখনও খুব একটা উন্নত হয়নি। এর একটি বড় অসুবিধাও ছিল: আপনি জেএসএফ পৃষ্ঠায় নির্বিঘ্নে এইচটিএমএল ইনলাইন করতে পারবেন না। সমস্ত সরল ভ্যানিলা এইচটিএমএল জেএসএফ উপাদান গাছের আগে উপস্থাপন করা হবে । আপনাকে সমস্ত সরল ভ্যানিলা <f:verbatim>
ট্যাগগুলিতে আবদ্ধ করতে হবে যাতে তারা জেএসএফ উপাদান উপাদানটিতে অন্তর্ভুক্ত হয়। যদিও এটি স্পেসিফিকেশন অনুযায়ী ছিল, এটি অনেক সমালোচনা পেয়েছে। এও জেএসএফ / ফেসলেটগুলিও দেখুন: কেন এইচটিএমএল ট্যাগের সাথে জেএসএফ / ফেসলেটগুলি মেশানো ভাল ধারণা নয়?
জেএসএফ 1.2 (মে 2006)
রায়ান লুবেকে নেতৃত্বাধীন নতুন জেএসএফ উন্নয়ন দলের এটি প্রথম প্রকাশ ছিল। নতুন দল অনেক দুর্দান্ত কাজ করেছে। জল্পনাও পরিবর্তন ছিল। সবচেয়ে বড় পরিবর্তনটি হ'ল হ্যান্ডলিংয়ের উন্নতি ছিল। এটি কেবল জেএসপি থেকে জেএসএফকে সম্পূর্ণরূপে বিচ্ছিন্ন করে দেয় না, তাই কেউ জেএসপি থেকে আলাদা ভিউ প্রযুক্তি ব্যবহার করতে পারে তবে এটি ডেভেলপারদের <f:verbatim>
ট্যাগ ছাড়াই জেএসএফ পৃষ্ঠায় সাদামাটা ভ্যানিলা এইচটিএমএল ইনলাইন করার অনুমতি দেয় । নতুন দলের আরও একটি প্রধান ফোকাস ছিল পারফরম্যান্সের উন্নতি। সূর্যের JSF রেফারেন্স বাস্তবায়ন 1.2 (যা codenamed ছিল জীবদ্দশায় Mojarra বিল্ড 1.2_08 সাল থেকে 2008 কাছাকাছি), কার্যত প্রতি বিল্ড স্বাভাবিক (মাইনর) বাগ পাশে (প্রধান) পারফরম্যান্সের উন্নতি সঙ্গে জাহাজে গিয়েছে।
জেএসএফ 1.x এর একমাত্র গুরুতর অসুবিধা (১.২ সহ) অনুরোধ এবং সেশনের সুযোগের মধ্যে তথাকথিত কথোপকথনের সুযোগের মধ্যে কোনও সুযোগের অভাব । এটি বিকাশকারীদের গোপন ইনপুট উপাদানগুলি, অপ্রয়োজনীয় ডিবি কোয়েরিগুলি এবং / বা সেশন স্কোপটি আপত্তিজনক কারণে ঝামেলা করতে বাধ্য করেছে যখনই যখন কেউ পরবর্তী অনুরোধে প্রাথমিক মডেল ডেটা ধরে রাখতে চায় যাতে আরও কার্যকরভাবে বৈধতা, রূপান্তর, মডেল পরিবর্তন এবং ক্রিয়া আহ্বান প্রক্রিয়া করতে পারে জটিল ওয়েব অ্যাপ্লিকেশন। তৃতীয় পক্ষের লাইব্রেরি গ্রহণ করে ব্যথাটি নরম হতে পারে যা মাইফিসস টমাহাক<t:saveState>
উপাদান, জেবস সীম কথোপকথনের সুযোগ এবং মাইফিসস অর্কেস্ট্রা এর মতো পরবর্তী অনুরোধে প্রয়োজনীয় ডেটা ধরে রাখে কথোপকথন কাঠামো।
এইচটিএমএল / সিএসএস পিউরিস্টদের জন্য আরেকটি অসুবিধা হ'ল জেএসএফ উত্পন্ন এইচটিএমএল আউটপুটটিতে :
এইচটিএমএল উপাদানটির স্বাতন্ত্র্যতা নিশ্চিত করতে আইডি বিভাজক চরিত্র হিসাবে কোলন ব্যবহার করে id
, বিশেষত যখন কোনও অংশে একবারে একাধিক বার পুনঃব্যবহার করা হয় (টেম্প্লেটিং, পুনরাবৃত্ত উপাদানগুলি ইত্যাদি) । যেহেতু এটি সিএসএস শনাক্তকারীদের একটি অবৈধ চরিত্র, আপনার \
সিএসএস নির্বাচকগুলিতে কোলন থেকে বাঁচতে ব্যবহার করতে হবে , ফলস্বরূপ কুৎসিত এবং বিশ্রী চেহারা পছন্দকারী #formId\:fieldId {}
বা এমনকি পছন্দ করে #formId\3A fieldId {}
। সিএসএস নির্বাচনকারীদের ":" কোলন ":" সহ জেএসএফ উত্পন্ন HTML উপাদান আইডি কীভাবে ব্যবহার করবেন তা দেখুন তবে, আপনি যদি পিউরিস্ট না হন তবে ডিফল্টরূপেও পড়ুন, জেএসএফ অযোগ্য আইডি উত্পন্ন করে, যা ওয়েব মানের সিএসএস অংশের সাথে সঙ্গতিপূর্ণ নয় ।
এছাড়াও, জেএসএফ 1.x বাক্সের বাইরে অ্যাজাক্স সুবিধাগুলি সহ পাঠায়নি। আসলে কোনও প্রযুক্তিগত অসুবিধা নয়, তবে সেই সময়ের মধ্যে ওয়েব ২.০ হাইপের কারণে এটি কার্যকরী অসুবিধা হয়ে দাঁড়িয়েছিল। এক্সাডেল অজ্যাক্স 4 জেএসএফ প্রবর্তন করার প্রথম দিকে ছিল, যা বছরের পর বছর পুরোপুরি বিকাশিত হয়েছিল এবং জেবস রিচফিজস উপাদানগুলির লাইব্রেরির মূল অংশ হয়ে উঠেছে । আর একটি উপাদান লাইব্রেরি বিল্টইন অ্যাজাক্স ক্ষমতা সহ প্রেরণ করা হয়েছিল, সুপরিচিত একটি আইসিএফেসগুলি ।
জেএসএফ ১.২ এর জীবনকালের প্রায় অর্ধেক, নতুন এক্সএমএল ভিত্তিক ভিউ প্রযুক্তি চালু করা হয়েছিল: ফেসলেটস । এটি জেএসপির উপরে, বিশেষত টেম্প্লেটিংয়ের ক্ষেত্রের উপরে প্রচুর সুবিধা দেয়।
জেএসএফ ২.০ (জুন ২০০৯)
এটি দ্বিতীয় প্রধান প্রকাশ ছিল, এ্যাজাক্সের সাথে বুজওয়ার্ড হিসাবে। প্রযুক্তিগত এবং কার্যকরী পরিবর্তনগুলি অনেক ছিল। JSP ডিফল্ট ভিউ প্রযুক্তি Facelets দ্বারা প্রতিস্থাপিত হয় এবং Facelets বিশুদ্ধ এক্সএমএল (তথাকথিত ব্যবহার কাস্টম উপাদান তৈরি করতে ক্ষমতা খোঁজা হয়েছে যৌগিক উপাদান )। আরও দেখুন কেন Facelets JSF2.0 অগ্রে থেকে দেখুন সংজ্ঞা ভাষা হিসেবে JSP বেশী প্রাধান্য হয়?
এজাক্স শক্তিগুলি <f:ajax>
উপাদানটির স্বাদে প্রবর্তিত হয়েছিল যা আজাক্স 4 জেএসএফের সাথে অনেক মিল রয়েছে। যথাসম্ভব ভার্বোজ ফাইলটি মুছে ফেলার জন্য টীকাগুলি এবং কনভেনশন-ওভার-কনফিগারেশন বর্ধনগুলি প্রবর্তিত হয়েছিল faces-config.xml
। এছাড়াও, ডিফল্ট নামকরণের ধারক আইডি বিভাজক চরিত্রটি :
কনফিগারযোগ্য হয়ে ওঠে, সুতরাং এইচটিএমএল / সিএসএস পিউরিস্টরা স্বস্তির নিঃশ্বাস ফেলতে পারে। আপনাকে যা করতে হবে প্রয়োজন যেমন সংজ্ঞায়িত হয় init-param
মধ্যে web.xml
নাম দিয়ে javax.faces.SEPARATOR_CHAR
আপনি চরিত্র নিজেকে যেমন ব্যবহার করছেন না যে কোন জায়গায় ক্লায়েন্ট ID এর, এবং নিশ্চিত -
।
সর্বশেষে তবে অন্তত নয়, একটি নতুন সুযোগ চালু করা হয়েছিল, দেখার সুযোগ। এটি পূর্বে বর্ণিত হিসাবে আরও একটি বড় জেএসএফ 1.x অসুবিধা দূর করেছে। আপনি কেবল @ViewScoped
শিমকে পরবর্তী (কথোপকথন) অনুরোধগুলিতে ডেটা ধরে রাখার সমস্ত উপায়ে ঝামেলা ছাড়াই কথোপকথনের সুযোগ সক্ষম করার জন্য ঘোষণা করুন । একটি @ViewScoped
শিম যতক্ষণ না আপনি পরবর্তী সময়ে একই দৃশ্যে (খোলা ব্রাউজার ট্যাব / উইন্ডো থেকে স্বতন্ত্রভাবে!) হয় তা সিঙ্ক্রোনালি বা অ্যাসিনক্রোনাসলি (অ্যাজাক্স) অবধি বেঁচে থাকবে। আরও দেখুন পরিচালিত মটরশুটি দেখুন এবং অনুরোধ সুযোগ মধ্যে পার্থক্য এবং কিভাবে সঠিক শিম সুযোগ পছন্দ করে নিন?
যদিও কার্যত জেএসএফ 1.x এর সমস্ত অসুবিধাগুলি অপসারণ করা হয়েছে, সেখানে জেএসএফ ২.০ নির্দিষ্ট বাগ রয়েছে যা শোস্টোপারে পরিণত হতে পারে। @ViewScoped
ট্যাগ হ্যান্ডেলার ব্যর্থ আংশিক রাষ্ট্র সংরক্ষণে একটি মুরগির ডিম সমস্যার কারণে। এটি জেএসএফ ২.২ এ স্থির এবং মোজারার ২.১.১৮ এ ব্যাকপোর্ট করা হয়েছে। এছাড়াও কাস্টম বৈশিষ্ট্যাবলী ক্ষণস্থায়ী HTML5 এর মতdata-xxx
সমর্থিত নয়। এটি জেএসএফ ২.২ এ নতুন পাসথ্রু উপাদান / বৈশিষ্ট্য বৈশিষ্ট্য দ্বারা স্থির করা হয়েছে। আরও জেএসএফ বাস্তবায়ন মোজারার নিজস্ব ইস্যুগুলির একটি সেট রয়েছে । তুলনামূলকভাবে তাদের অনেকগুলিই কখনও কখনও অনিয়ন্ত্রিত আচরণের<ui:repeat>
সাথে সম্পর্কিত হয় , নতুন আংশিক রাষ্ট্রীয় সংরক্ষণ বাস্তবায়ন এবং দুর্বলভাবে প্রয়োগ করা ফ্ল্যাশ সুযোগের সাথে সম্পর্কিত । তাদের বেশিরভাগ মোজারার ২.২.x সংস্করণে স্থির রয়েছে।
জেএসএফ ২.০ সময় জুড়ে, প্রাইমফ্রিজগুলি jQuery এবং jQuery UI এর ভিত্তিতে প্রবর্তিত হয়েছিল। এটি সর্বাধিক জনপ্রিয় জেএসএফ উপাদান লাইব্রেরিতে পরিণত হয়েছে।
জেএসএফ 2.2 (মে 2013)
জেএসএফ ২.২ প্রবর্তনের সাথে এইচটিএমএল 5 এটি বুজওয়ার্ড হিসাবে ব্যবহৃত হয়েছিল যদিও এটি প্রযুক্তিগতভাবে সমস্ত পুরানো জেএসএফ সংস্করণে সমর্থিত ছিল। আরও দেখুন জাভা সার্ভার 2.2 এবং HTML5 সমর্থন, কেন এক্সএইচটিএমএল এখনও ব্যবহৃত হচ্ছে আকৃতির । সর্বাধিক গুরুত্বপূর্ণ নতুন জেএসএফ ২.২ বৈশিষ্ট্যটি হ'ল কাস্টম উপাদানগুলির বৈশিষ্ট্যগুলির সমর্থন, যার ফলে কাস্টম টেবিলবিহীন রেডিও বোতাম গোষ্ঠীগুলির মতো সম্ভাবনার একটি বিশ্ব খোলা হয় ।
নির্দিষ্ট বাগ এবং কিছু "বিরক্তিকর ছোট জিনিস" বাস্তবায়ন ব্যতীত বৈধতা প্রদানকারী / রূপান্তরকারী (ইতোমধ্যে জেএসএফ ২.৩-এ সংশোধিত) কোনও ইজেবি ইনজেক্ট করতে অক্ষমতা, জেএসএফ ২.২ স্পেসিফিকেশনে সত্যিকারের বড় অসুবিধাগুলি নেই।
উপাদান ভিত্তিক এমভিসি বনাম অনুরোধ অনুরোধ এমভিসি
কিছু জেএসএফের বড় অসুবিধাটি বেছে নিতে পারে যে এটি উত্পন্ন এইচটিএমএল / সিএসএস / জেএসের উপর খুব কম সূক্ষ্ম নিয়ন্ত্রণের অনুমতি দেয়। এটি জেএসএফের নিজস্ব নয়, এটি কেবল কারণ এটি একটি উপাদান ভিত্তিক এমভিসি কাঠামো, কোনও অনুরোধ (ক্রিয়া) ভিত্তিক এমভিসি কাঠামো নয়। যদি কোনও এমভিসি কাঠামোটি বিবেচনা করার সময় যদি উচ্চতর ডিগ্রিটি এইচটিএমএল / সিএসএস / জেএসকে নিয়ন্ত্রণ করা আপনার প্রধান প্রয়োজন হয় তবে আপনার ইতিমধ্যে কোনও উপাদান ভিত্তিক এমভিসি কাঠামোর দিকে তাকানো উচিত নয়, তবে স্প্রিং এমভিসির মতো একটি অনুরোধ ভিত্তিক এমভিসি কাঠামোর দিকে তাকানো উচিত । আপনাকে কেবল অ্যাকাউন্টে নেওয়া দরকার যে আপনাকে সেই সমস্ত HTML / সিএসএস / জেএস বয়লারপ্লিট লিখতে হবে। আরও দেখুন অনুরোধ MVC এবং কম্পোনেন্ট MVC মধ্যে পার্থক্য ।
আরো দেখুন: