জেকোয়েরি নিয়ে কাজ করার কিছু কমন সম্যসা এবং তার সমাধান

2
408 বার দেখা হয়েছে।
জেকোয়েরি

জেকোয়েরি ছাড়া ওয়েবসাইট বানানো আর মুন্ডু বিহীন মানুষ এখন অনেকটা একই ব্যাপার । যতই দিন যাচ্ছে জেকোয়েরিরি ব্যাবহার ততই বাড়ছে , প্রতিদিন নতুন নতুন জেকোয়েরি প্লাগিন তৈরি হচ্ছে । নিজে জেকোয়েরি না জানলেও অনেকেই জেকোয়েরি প্লাগিন ডেভেলপারদের বা জেকোয়েরি এক্সপার্টদের বানানো প্লাগিন ইউজ করছেন যেমন , জেকোয়েরি স্লাইডশো , নিউজ টিকার ইত্যাদি । পিএইচপি এর সাথে লজিকাল দিকে দিয়ে জেকোয়েরির অনেক মিল থাকলেও জেকোয়েরির সবথেকে বড় সম্যসা এটিতে কোনো ভুল হলে কোথায় ভুল হয়েছে সেটা পিএইচপি এর মত এরর দেখায় না এবং পুরো স্ক্রিপ্টই কাজ করা বন্ধ করে দেয় । আজকে জেকোয়েরি ব্যাবহারের কিছু কমন সম্যসা আর তার সমাধান দেয়া হল ।

 

যে কয়টি কারনে জেকোয়েরি কাজ না করতে পারে –

 

১. জেকোয়েরি লোড করার আগেই অন্য স্ক্রিপ্ট লোড করা :- জেকোয়েরি নিয়ে কাজ করতে হলে আগে অবশ্যই jquery.com থেকে জেকোয়েরি ডাউনলোড করে টেমপ্লেটের মাঝে ইন্ট্রিগেট করতে হবে অথবা চাইলে সরাসরি jquery.com এর লিংক দিয়েই জেকোয়েরি কল করতে পারেন । তবে যদি ভুল করে জেকোয়েরির CDN লোড করার পুর্বেই কোনো স্ক্রিপ্ট কে কল করা হয় তাহলে সেটি কাজ করবে না ।

সমাধান – এক্ষেত্রে জেকোয়েরিকে অবশ্যই আগে কল করতে হবে এবং অন্য স্ক্রিপটগুলোকে জেকোয়েরির পরে বসাতে হবে ।

২. ডকুমেন্ট রেডি – জেকোয়েরি একা একা কিছুই করতে পারে না , এটিকে অবশ্যই কোনো না কোনো HTML এর উপরে নির্ভর করতে হবে । ঐ HTMLলোড হবার আগেই যদি জেকোয়েরি লোড হয়ে যায় তাহলে সেটি কাজ করবে না ।

সমাধান  – এর জন্য দুটি সমাধান আছে ।

প্রথম সমাধান ; জেকোয়েরি ফুটারে লোড করা । যেহেতু কোনো ওয়েবপেজে একসেস করার সময় ব্রাউজার হেডার থেকে স্ক্যান শুরু করে এবং ফুটারে এসে শেষ হয় তাই হেডারে জেকোয়েরি রাখা হলে সেটা বডির মাঝে রাখা HTML এর আগেই এক্সিকিউট হয়ে যাবে । ফলে জেকোয়েরি কাজ করবে না । যেমন –

 

 

এই একই কোড আপনি ফুটারে বসিয়ে দেখুন , কোনো লিংকে ক্লিক করা মাত্রই ‘You have clicked on a link’ এলার্ট পাবেন , কিন্তু হেডারে বসালে কাজ করবে না কারন তখন এটি HTML এর আগেই লোড হয়ে যাবে ।

দ্বিতীয় সমাধান – দ্বিতীয় সমাধানটি জেকোয়েরি নিজেই দিয়ে রেখেছে , সেটি হচ্ছে ডকুমেন্ট রেডি ফাংশান । জেকোয়রি নিজেই ডকুমেন্ট রেডি নামে একটি ফাংশান রেখে দিয়েছে যার কাজ হল ডকুমেন্ট পুরোপুরি রেডি না হওয়া পর্যন্ত জেকোয়রিকে লোড হতে না দেয়া ।

 

 

ডকুমেন্ট রেডি করে স্ক্রিপ্ট লোড করলে সেটা হবে এরকম –

এটি হেডার বা ফুটার যেখানেই বসান না কেন তা কাজ করবে ।

তবে এই সম্যসা খুব একটা হয়না কারন প্রায় সব জেকোয়েরি ডেভেলপারই এখন ডকুমেন্ট রেডি ফাংশান ইউজ করেন ।

 

৩. একাধিক লাইব্রেরি ব্যাবহার করা – কোনো প্রজেক্টে একাধিক জেকোয়েরি লাইব্রেরি ব্যাবহার করলে এই সম্যসা হবে , কোড ঠিকভাবে লেখার পরেও কাজ করবে না । বিভিন্ন ফ্রেমোয়ার্কের অধিনে কাজ করার সময় এটি সবথেকে বেশি হয় যেমন ওয়ার্ডপ্রেসের অপশন পেজ বানিয়ে সেখানে জেকোয়েরি স্ক্রিপ্ট এড করতে চাইলে এরকম হবার চান্স বেশি ।

সমাধান – এই সম্যসা সমাধানের জন্য নো কনফ্লিট ইউজ করা হয় । নো কনফ্লিট হচ্ছে এমন একটি মেথড যার ফলে জেকোয়েরি নিজের মত কাজ চালিয়ে যাবে, অন্য কারো দ্বারা প্রভাবিত হবে না ।  নো কনফ্লিট লেখার নিয়ম –

 

যেমন –

 

৪. কেস সেনসিভিটি – জেকোয়রি পুরোপুরি কেস সেনসিটিভ, তাই এই ব্যাপারে ১১০ ভাগ এলার্ট থাকা উচিত । যারা জানেননা তাদের জন্য – কেস সেনসিটিভ হচ্ছে বড় এবং ছোট হাতের অক্ষর মিলিয়ে রাখা । মানে আপনি যদি HTML এ বড় হাতের অক্ষর লেখেন ( CLASS ) তাহলে জেকোয়েরিতেও বড় হাতেই লিখতে হবে ।

 

৫. জেকোয়েরি ভার্সন – অনেক জেকোয়েরি প্লাগিন আছে যেগুলো জেকোয়েরির নতুন ভার্সনে কাজ করে না আবার অনেক প্লাগিন আছে যেগুলোর পুরোনো ভার্সনে কাজ করবে না ।

সমাধান – এরকম ক্ষেত্রে যে প্লাগিন ব্যাবহার করছেন ওই প্লাগিনের ডকুমেন্টেশন থেকে জেকোয়েরির ভার্সন সম্পর্কে জেনে নেয়া উচিত । জেকোয়েরির সাধারন ফাংশানগুলো প্রায় সব ভার্সনেই রান করানো যায় , তাই অন্য প্লাগিন ব্যাবহারের সময় এটির দিকে নজর দেয়া উচিত।

 

৬. ব্রাকেট বিভ্রান্তি – জেকোয়েরিতে প্রচুর ফাস্ট এবং সেকেন্ড ব্রাকেট ব্যাবহার করা হয় । যদিও ব্যাবহারের ধরন প্রায় একই তবুও নতুনদের এই ব্রাকেট নিয়ে বিভ্রান্তিতে পড়াটা অস্বাভাবিক কিছু নয় । যেহেতু জেকোয়েরি কোনো ভুল হলে এরর মেসেজ দেখায় না সেহেতু একটা সামান্য ভুল হলেও পুরো স্ক্রিপ্ট বারবার চেক করতে হবে যেটা বিরক্তিকর ।

 

সমাধান – এক্ষেত্রে সবথেকে সহজ সমাধান হল একবারে কোড না লিখে ধাপে ধাপে কোড লিখে এবং চেক করে করে আগানো । যেমন আমি যদি চাই ব্লগের কন্টেন্টের মাঝে থাকা কোনো ইনপুট বক্সে ক্লিক করলে এলার্ট দেখাবে তাহলে প্রথমে ডকুমেন্ট রেডি পর্যন্ত লিখে একটি alert(); ব্যাবহার করে কোড ঐ পর্যন্ত ঠিক আছে কিনা সেটা চেক করে নিয়ে তারপরে পরবর্তি স্টেপে যাওয়া উচিত । এভাবে করাটা একটু সময়সাপেক্ষ তবে অনেকাংশেই নিরাপদ । নয়তো বিরাট বড় কোড লিখে ফেলার পরে যদি দেখেন কিছুই হচ্ছে না তাহলে মাথায় হাত দেয়া ছাড়া উপায় নেই ।

 

ওয়ার্ডপ্রেসে জেকোয়েরি ব্যাবহারের সঠিক পদ্ধতি – অনেকেই পুরোনো বা ভুল পদ্ধতিতে ওয়ার্ডপ্রেস থীম বা প্লাগিনের মাঝে জেকোয়েরি স্ক্রিপ্ট এড করে । জেকোয়েরি স্ক্রিপ্ট এড করার জন্য ওয়ার্ডপ্রেসের নিজস্ব ফাংশান রেফারেন্স wp_register_script এবং wp_enque_script আছে ।

 

ভুল/অনাদর্শ পদ্ধতি –

 

 

এটা ১০০ ভাগ ভুল পদ্ধতি । জেকোয়েরি বা জাভাস্ক্রিপ্ট যুক্ত করার জন্য ওয়ার্ডপ্রেসের নিজস্ব ফাংশান রেফারেন্স wp_enque_scripts রয়েছে ।

 

wp_enque_scripts এবং wp_register_script –

 

wp_register_script এর কাজ হচ্ছে কোনো নির্দ্রিষ্ট পাথ এর মাঝে থাকা স্ক্রিপটকে ওয়ার্ডপ্রেসে রেজিস্টার করা এবং পরবর্তিতে ওই স্ক্রিপটের শর্টনেম অনুসারে কল করার জন্য রেডি করা ।যেমন আমি এখানে একটি স্ক্রিপ্ট রেজিস্টার করছি –

 

 

এখানে আমি টেমপ্লেট ডিরেক্টরির মাঝে থাকা script.js ফাইলটি রেজিস্টার করেছে my-custom-script নামে এবং add_action ব্যাবহার করে wp_enque_scripts এর মাঝে এড করে দিয়েছে । এবার যখন ই <?php wp_enqueue_script( ‘my-custom-script’ ); ?> লিখবেন তখনই উক্ত স্ক্রিপটি এক্সিকিউট হবে । ওয়ার্ডপ্রেস নিজেও এভাবে অনেক স্ক্রিপট রেজিস্টার করে রেখেছে যার মাঝে জেকোয়েরি শর্টেবল থেকে শুরু করে ওয়ার্ডপ্রেস মিডিয়া আপলোডার পর্যন্ত আছে । শুধুমাত্র wp_enqueue_script ব্যাবহার করে সেগুলোকে প্রয়োজনমত ব্যাবহার করা সম্ভব ।

ধন্যবাদ । হ্যাপি ডেভলপিং , হ্যাপি জেকুয়েরিং 😀

Print Friendly, PDF & Email
Previous articleখুব সহজেই ফটোস্কেপ দিয়ে ইমেজ স্লাইডার তৈরী করুন
Next articleCSS3 দিয়ে jQuery Accordion তৈরি!
এই কোলাহল একদম ভাল লাগেনা তাই সময় পেলেই বন্ধুদের নিয়ে ছুটে যাই দুরে কোথাও নির্জনে যেখানে ব্যস্ততা নেই, নেই লোক দেখানো সুখি থাকার অভিনয়, যা আছে সবই প্রাকৃতিক ভাবে সৃষ্ট।দারুন ভবঘুরে ছিলাম আমি।একবার ঘুরতে বের হলে সময় জ্ঞান থাকতো না ।এই ব্যাস্ত জীবনে সেভাবে ঘোরা হয় না , যেভাবে ঘোরা আমার স্বভাব । দিন যায় রাত আসে আপন নিয়মে শুধু আসেনা সেই ভবঘুরে দিন গুলো। ব্যস্ত শহরের প্রতিটি ধুলিকনাও সমান ব্যস্ততার মাঝেই দিন কাটায়, এ বাড়ীর পাচিলে নয়তো কোন আট্রালিকার গ্রীলে ফাঁকে বসে থাকে অন্য কোথাও উড়ে যাবার জন্য। শান্ত নদীর বুকে উড়ে বেড়ানো চিল গুলো সর্বদা শান্তই থাকে, ঝাক বেঁধে উড়ে বেড়ায় আত্মতৃপ্তি নিয়ে নীড়ে ফেরে। ওদের সবারই কিছু কিছু চাওয়া থাকে, থাকে প্রাপ্তির সম্মিলনও,কিন্তু কিছু কিছু মানুষের জীবন ? কিঞ্চিৎ স্বপ্ন দেখতেও তাদের ভয়, পাছে স্বপ্ন ভঙ্গের বেদনা তারা করে সব সময়।দিনের শেষে ফিরে যাবার মত একটা নীড়ও তাদের নেই, আমি সেই দলেরই একজন.............. আমিতো সামান্য একজন মানুষ, শহরের ধুলিকণা কিংবা শঙ্খচিল হতে পারিনা। কাউকে স্বপ্ন দেখাতে জানিনা, জানিনা কিভাবে স্বপ্ন দেখতে হয়। জানিনা কিভাবে ভালবাসতে হয়। আমার আনুভুতিগুলো ভোতা হয়ে গেছে। তাইতো সারাদিন যন্ত্র নিয়ে পড়ে থাকি, যন্ত্র হওয়ার সাধানায় মত্ত আমি। যন্ত্র দিয়েই একেঁ চলি জীবনের প্রতিচ্ছবি, প্রতিটি জীবনেই আলাদা একটা প্যাটার্ণ থাকে, নানা রংয়ের সমাহারে ভেক্টর আকাঁ থাকে মনের গহীনে, পাজরের মাঝে সুপ্ত করে লুকানো থাকে এক ছবি হাজারো pixel দিযে গঠিত সে ছবি। সময়ের স্রোতেই হোক কিংবা বাস্তবতার কষাঘাতেই হোক ধিরে ধীরে সব কিছুই Bluer হয়ে যাচ্ছে হৃদয়ের মনিটরে। এত কিছুর পরেও একেঁ চলি জীবনের জল ছবি; স্বপ্নের কালো রংয়ে............

2 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.