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

এজাক্স কি?

"Asynchronous JAvaScript and XML" এই শব্দগুলোর প্রথম অক্ষর নিয়ে AJAX শব্দটি গঠিত। শব্দগুলো যদি আমরা দেখি তাহলে বুঝবো জাভাস্ক্রিপ্ট এবং এক্সএমএল নিয়ে এজাক্স কাজ করে। কিন্তু "Asynchronous" যার বাংলা "অসমনিয়ত" শব্দটি একটু কঠিন মনে হচ্ছে, তাই না?

"Asynchronous" (অসমনিয়ত) এর কাজ:

"Asynchronous" (অসমনিয়ত) বলতে বুঝানো হচ্ছে ইউজারের আড়ালে একটি কাজের প্রক্রিয়ার ঘটনাবলী। এই প্রক্রিয়াটি মূল কাজটিকে মোটেও বাধাগ্রস্ত করে না, বরং কাজের ধারাবাহিকতা ও গতিশীলতা বজায় রাখতে সাহায্য করে। এটির খুব ভালো একটি উদাহরণ হলো ফেইসবুক। ফেইসবুকের মূল পেইজে আমাদের সকল বন্ধুদের স্টেটাস ও অন্যান্য তথ্য প্রদর্শন করে, যার জন্য আমাদের পেইজটি রিলোড দিতে হয় না। সুতরাং ফেইসবুকের এই কাজটা কিভাবে করে? ফেইসবুক আপনার প্রোফাইল আইডিটি তাদের সার্ভারে প্রেরণ করে, সার্ভার আপনার ফেইসবুক বন্ধুদের আপডেট স্টেটাস গুলো জোগার করে। পেইজটি রিলোড না নিয়ে স্টেটাস গুলো আপনার মূল পেইজে পেইজে প্রদর্শন করে।

সুতরাং এখন আপনিই বলুন এজাক্স এর কাজ কি? বিষয়টি আরোও পরিস্কার হওয়ার জন্য নিচের ছবিটি দেখুন:
AJAX Bangla Tutorial

এজাক্স এর সুবিধা:

এজাক্স তার কাজ সম্পাদনের জন্য নিম্নোক্ত টুলস/ভাষা ব্যবহার করে:

  • XMLHttpRequest Object (নতুন ব্রাউজার ও IE7+ এর জন্য)
  • ActiveXObject (IE6 ও নিচে)
  • JavaScript/DOM (ব্রাউজার ও সার্ভারের জন্য)
  • XML (ফলাফল দেখানোর জন্য)
  • JSON (ফলাফল দেখানোর জন্য)
  • HTML (ফলাফল দেখানোর জন্য)

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

অসুবিধা:

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

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

সর্বশেষ আরেকটি সমস্যার কথা আমি উল্লেখ করতে চাই, সেটি হলো এসইও। এজাক্স অনেক সময়ই এসইও এর অনুকূলে পেইজের লিঙ্ক প্রদর্শন করতে পারে না। তখন এটি অনেক বড় একটি সমস্যার কারণ হতে দাড়াতে পারে।

আমার প্রস্তাবনা:

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

এজাক্স বাংলা টিউটোরিয়াল:

আমার ক্ষুদ্র জ্ঞান থেকে আমি সাত পর্বের একটি এজাক্স বাংলা টিউটোরিয়াল প্রকাশ করেছি। কারো আগ্রহ থাকলে দেখতে পারেন “ফ্রী বাংলা টিউটোরিয়াল” থেকে।