HTMX ইন্সটলেশন এবং সেটআপ
HTMX ব্যবহার শুরু করতে হলে এটি আপনার প্রকল্পে ইন্সটল করা প্রয়োজন। HTMX খুব সহজে এবং দ্রুত সেটআপ করা যায়। নিচে HTMX এর ইন্সটলেশন এবং সেটআপের ধাপগুলি বিস্তারিতভাবে আলোচনা করা হলো।
১. HTMX ইনস্টলেশন
HTMX ইনস্টল করার জন্য আপনাকে আপনার HTML ফাইলের <head> বিভাগে HTMX লাইব্রেরির CDN লিঙ্ক যুক্ত করতে হবে।
১.১. CDN ব্যবহার
এটি সবচেয়ে সহজ উপায় HTMX ইন্সটল করার জন্য। আপনার HTML ফাইলে নিচের কোডটি যুক্ত করুন:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script> <!-- HTMX CDN -->
</head>
<body>
<h1>HTMX Setup Example</h1>
<div id="content"></div>
<button hx-get="/load-content" hx-target="#content">Load Content</button>
</body>
</html>
১.২. NPM ব্যবহার
আপনি যদি NPM ব্যবহার করে প্রকল্প তৈরি করেন, তবে HTMX ইনস্টল করতে নিচের কমান্ডটি চালান:
npm install htmx.org
এরপর, আপনার JavaScript ফাইলে HTMX ইনক্লুড করুন:
import htmx from 'htmx.org';
২. HTMX সেটআপ
HTMX সেটআপ করার পরে, আপনি HTML মার্কআপের মাধ্যমে AJAX কার্যকারিতা এবং ডাইনামিক কন্টেন্ট লোডিং শুরু করতে পারেন। নিচে কিছু মৌলিক উদাহরণ রয়েছে।
২.১. HTML উপাদান সেটআপ
HTMX ব্যবহার করে HTML উপাদানগুলি তৈরি করুন। উদাহরণস্বরূপ, একটি বোতাম এবং একটি ডিভ:
<button hx-get="/load-content" hx-target="#content">Load Content</button>
<div id="content"></div>
২.২. সার্ভার সাইড সেটআপ
যদি আপনি Flask ব্যবহার করেন, তাহলে একটি সহজ সার্ভার তৈরি করুন:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/load-content')
def load_content():
return render_template_string('<p>This content is loaded dynamically!</p>')
if __name__ == '__main__':
app.run(debug=True)
৩. HTMX এর মাধ্যমে AJAX কল
HTMX ব্যবহার করে AJAX কল করতে পারবেন, যা পেজ রিফ্রেশ ছাড়াই কন্টেন্ট লোড করার সুবিধা দেয়। উদাহরণস্বরূপ:
<button hx-get="/load-content" hx-target="#content">Load Content</button>
- এখানে, বোতামে ক্লিক করলে HTMX সার্ভার থেকে
/load-contentURL-এ GET রিকোয়েস্ট পাঠায় এবং প্রাপ্ত HTML কন্টেন্ট#contentডিভে সন্নিবেশ করে।
৪. CSS ট্রানজিশন
HTMX এর মাধ্যমে লোড হওয়া কন্টেন্টে CSS ট্রানজিশন যোগ করতে পারেন। উদাহরণস্বরূপ:
<style>
.fade-in {
transition: opacity 0.5s;
opacity: 0;
}
.fade-in.loaded {
opacity: 1;
}
</style>
<script>
document.addEventListener('htmx:afterSwap', function (event) {
event.target.classList.add('loaded');
});
</script>
- এখানে, নতুন কন্টেন্ট লোড হলে
loadedক্লাস যুক্ত হবে, যা CSS ট্রানজিশনকে সক্রিয় করবে।
সারসংক্ষেপ
- HTMX ইনস্টলেশন: HTMX লাইব্রেরির CDN লিঙ্ক ব্যবহার করে বা NPM-এর মাধ্যমে ইন্সটল করুন।
- সেটআপ: HTML মার্কআপের মাধ্যমে বোতাম এবং ডিভ তৈরি করুন।
- সার্ভার সাইড: সার্ভার তৈরি করে HTMX কলগুলি পরিচালনা করুন।
- AJAX কল: HTMX এর মাধ্যমে AJAX কলের মাধ্যমে ডাইনামিক কন্টেন্ট লোড করুন।
- CSS ট্রানজিশন: লোড হওয়া কন্টেন্টের জন্য CSS ট্রানজিশন যুক্ত করুন।
HTMX একটি শক্তিশালী টুল যা ওয়েব ডেভেলপমেন্টের প্রক্রিয়াকে সহজ করে এবং ডাইনামিক কার্যকারিতা যুক্ত করে।
HTMX এর জন্য HTML ফাইল কনফিগারেশন খুবই সহজ, কারণ HTMX HTML Attribute-Based Approach ব্যবহার করে। HTMX এর বিভিন্ন Attribute যোগ করে HTML ফাইলে ইন্টারঅ্যাক্টিভ ফিচার যোগ করা যায়, যেমন AJAX রিকোয়েস্ট, পেজের নির্দিষ্ট অংশ আপডেট, এবং ইভেন্ট ট্রিগারিং।
নিচে HTMX কনফিগারেশন করার উদাহরণ সহ HTMX এর Attribute ব্যবহার নিয়ে আলোচনা করা হলো:
HTMX HTML ফাইল কনফিগারেশন উদাহরণ
HTMX লাইব্রেরি ইনক্লুড করা: প্রথমে HTMX ব্যবহার করতে HTMX এর JavaScript ফাইল যুক্ত করতে হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example</title>
<!-- HTMX CDN যুক্ত করা -->
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<!-- HTML কোড এখানে যুক্ত হবে -->
</body>
</html>
HTMX Attribute ব্যবহার করে উদাহরণ
HTMX এর বিভিন্ন Attribute ব্যবহার করে HTML ফাইলে ফিচার যুক্ত করা যায়।
1. GET রিকোয়েস্ট এবং Data Fetching (hx-get)
hx-get Attribute ব্যবহার করে সরাসরি GET রিকোয়েস্ট করা যায় এবং এর মাধ্যমে সার্ভার থেকে ডেটা ফেচ করা সম্ভব।
<!-- GET রিকোয়েস্টের উদাহরণ -->
<button hx-get="/fetch-data" hx-target="#result">Fetch Data</button>
<div id="result">Here will be the fetched data</div>
ব্যাখ্যা:
- এখানে,
/fetch-dataএ GET রিকোয়েস্ট পাঠানো হয় এবং#resultdiv এ ফলাফল দেখানো হয়। hx-target="#result"Attribute দিয়ে নির্দেশ করা হয়েছে যে, রেসপন্সটি#resultdiv এ রেন্ডার হবে।
2. POST রিকোয়েস্ট এবং Data Submission (hx-post)
hx-post Attribute ব্যবহার করে POST রিকোয়েস্ট করা যায়, যা ফর্ম ডেটা সার্ভারে পাঠাতে ব্যবহৃত হয়।
<!-- POST রিকোয়েস্টের উদাহরণ -->
<form hx-post="/submit-data" hx-target="#message" hx-swap="outerHTML">
<input type="text" name="username" placeholder="Enter your name">
<button type="submit">Submit</button>
</form>
<div id="message">Message will appear here</div>
ব্যাখ্যা:
/submit-dataURL এ POST রিকোয়েস্ট পাঠায় এবং ফর্ম ডেটা সাবমিট করা হয়।hx-target="#message"নির্দেশ করে যে, সাবমিশনের পর#messagediv এ রেসপন্স রেন্ডার হবে।
3. Content Swapping (hx-swap)
hx-swap ব্যবহার করে নির্দিষ্ট অংশে কন্টেন্ট আপডেট করা যায়, যেমন innerHTML, outerHTML, বা beforeend।
<!-- Content Swapping এর উদাহরণ -->
<div hx-get="/new-content" hx-swap="innerHTML">Click me to load new content here</div>
ব্যাখ্যা:
hx-swap="innerHTML"নির্দেশ করে যে,/new-contentথেকে আনা ডেটাinnerHTMLহিসেবে এই div এর মধ্যে দেখানো হবে।
4. Triggering Events (hx-trigger)
hx-trigger Attribute বিভিন্ন ইভেন্টে রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়, যেমন click, mouseover, অথবা টাইমআউট।
<!-- ইভেন্ট ট্রিগারের উদাহরণ -->
<button hx-get="/load-more" hx-trigger="click">Load More</button>
ব্যাখ্যা:
hx-trigger="click"নির্দেশ করে যে, বাটনে ক্লিক করার সাথে সাথে/load-moreএ রিকোয়েস্ট পাঠানো হবে।
5. Targeting Specific Elements (hx-target)
hx-target Attribute নির্দিষ্ট DOM এলিমেন্টে রেসপন্স আপডেট করতে ব্যবহার করা হয়।
<!-- Targeting Elements এর উদাহরণ -->
<button hx-get="/profile-info" hx-target="#profile">Show Profile</button>
<div id="profile">Profile information will be loaded here</div>
ব্যাখ্যা:
/profile-infoথেকে রিকোয়েস্ট পাঠানো হলে রেসপন্স#profilediv এ রেন্ডার করা হবে।
6. Push URL (hx-push-url)
hx-push-url Attribute ব্যবহার করে ব্রাউজারের URL আপডেট করা যায়, যা ব্রাউজারের ব্যাক/ফরওয়ার্ড বাটন কাজ করে।
<!-- URL পুশ করার উদাহরণ -->
<button hx-get="/new-section" hx-push-url="true">Go to New Section</button>
<div id="section-content">Section content will be updated here</div>
ব্যাখ্যা:
hx-push-url="true"নির্দেশ করে যে,/new-sectionএ রিকোয়েস্ট পাঠানোর পর URL আপডেট করা হবে এবং ব্রাউজারের ব্যাক বাটনে এটি নতুন পৃষ্ঠার মতো কাজ করবে।
7. WebSocket Integration (hx-ws)
HTMX এ hx-ws Attribute ব্যবহার করে WebSocket এর মাধ্যমে রিয়েল-টাইম ডেটা আপডেট করা যায়।
<!-- WebSocket এর উদাহরণ -->
<div hx-ws="connect:/websocket-endpoint" hx-swap="innerHTML">Real-time data will appear here</div>
ব্যাখ্যা:
hx-ws="connect:/websocket-endpoint"WebSocket এর মাধ্যমে সার্ভারের সাথে সংযুক্ত হয় এবং রিয়েল-টাইম ডেটা এই div এ আপডেট করে।
8. Server-Sent Events (hx-sse)
hx-sse Attribute ব্যবহার করে Server-Sent Events (SSE) এর মাধ্যমে সার্ভারের সাথে একতরফা সংযোগ স্থাপন করা যায়।
<!-- SSE এর উদাহরণ -->
<div hx-sse="connect:/sse-endpoint" hx-swap="innerHTML">Live updates will be displayed here</div>
ব্যাখ্যা:
hx-sse="connect:/sse-endpoint"সার্ভার থেকে নিরবচ্ছিন্ন ডেটা আপডেটinnerHTMLহিসেবে রেন্ডার করবে।
9. Custom Headers (hx-headers)
hx-headers Attribute ব্যবহার করে রিকোয়েস্টে কাস্টম HTTP হেডার পাঠানো সম্ভব।
<!-- Custom Headers এর উদাহরণ -->
<div hx-get="/data" hx-headers='{"Authorization": "Bearer abc123"}'>Load data with custom headers</div>
ব্যাখ্যা:
hx-headersব্যবহার করে Authorization হেডার পাঠানো হয়েছে, যা অ্যাপ্লিকেশনের নিরাপত্তা বৃদ্ধিতে সহায়ক।
সম্পূর্ণ উদাহরণ
নিচে HTMX এর বিভিন্ন Attribute ব্যবহার করে একটি ছোট অ্যাপ্লিকেশনের উদাহরণ দেওয়া হলো:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example Application</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h1>Welcome to HTMX Example</h1>
<!-- Data Fetching Button -->
<button hx-get="/fetch-info" hx-target="#info">Get Info</button>
<div id="info">Information will appear here</div>
<!-- Form Submission -->
<form hx-post="/submit-form" hx-target="#form-message">
<input type="text" name="name" placeholder="Enter your name">
<button type="submit">Submit</button>
</form>
<div id="form-message">Submission result will be shown here</div>
<!-- Real-time Updates using SSE -->
<div hx-sse="connect:/live-updates" hx-swap="innerHTML">Live updates will appear here</div>
</body>
</html>
উপসংহার
HTMX এর সাহায্যে HTML ফাইল কনফিগার করা সহজ, এবং এটি HTML Attribute গুলো ব্যবহার করে বিভিন্ন ইন্টারঅ্যাকটিভ ফিচার সংযুক্ত করতে সাহায্য করে। AJAX রিকোয়েস্ট, রিয়েল-টাইম আপডেট এবং কাস্টম ইভেন্ট ট্রিগারিং সহ HTMX একটি শক্তিশালী টুল, যা কম কোডে ইন্টারঅ্যাকটিভ এবং ডাইনামিক কন্টেন্ট তৈরি করতে সহায়ক।
CDN (Content Delivery Network) ব্যবহার করে HTMX অন্তর্ভুক্ত করা
HTMX ব্যবহার শুরু করার জন্য সবচেয়ে সহজ পদ্ধতি হল CDN (Content Delivery Network) ব্যবহার করে লাইব্রেরিটি আপনার HTML ফাইলে অন্তর্ভুক্ত করা। এটি কোনও স্থানীয় ইনস্টলেশন ছাড়াই সরাসরি আপনার ওয়েব পৃষ্ঠায় HTMX কার্যকারিতা নিয়ে আসতে সহায়ক। নিচে HTMX কে CDN এর মাধ্যমে অন্তর্ভুক্ত করার ধাপগুলি বর্ণনা করা হলো।
১. HTML ফাইল তৈরি
প্রথমে একটি নতুন HTML ফাইল তৈরি করুন বা একটি বিদ্যমান HTML ফাইলে HTMX যুক্ত করুন।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example</title>
<!-- HTMX CDN Link -->
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h1>HTMX CDN Example</h1>
<div id="content"></div>
<button hx-get="/load-content" hx-target="#content">Load Content</button>
</body>
</html>
২. HTMX এর মাধ্যমে AJAX কল
২.১. বোতাম তৈরি করা
HTMX ব্যবহার করে একটি বোতাম তৈরি করুন যা ক্লিক করার মাধ্যমে AJAX কল করে। উদাহরণস্বরূপ:
<button hx-get="/load-content" hx-target="#content">Load Content</button>
<div id="content"></div>
- এখানে, বোতামে ক্লিক করলে HTMX
/load-contentURL থেকে ডেটা লোড করবে এবং#contentডিভে সন্নিবেশ করবে।
৩. সার্ভার সাইড সেটআপ (যদি প্রয়োজন হয়)
৩.১. সার্ভার তৈরি করা
আপনি যদি সার্ভার সাইডে কিছু ডেটা লোড করতে চান, তবে একটি সার্ভার সেটআপ করতে পারেন। নিচে একটি সহজ Flask উদাহরণ দেওয়া হলো:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/load-content')
def load_content():
return render_template_string('<p>This content is loaded dynamically!</p>')
if __name__ == '__main__':
app.run(debug=True)
৪. HTMX ব্যবহার করে কন্টেন্ট লোড করা
৪.১. কন্টেন্ট লোড হওয়ার প্রক্রিয়া
- যখন ব্যবহারকারী "Load Content" বোতামে ক্লিক করবে, HTMX AJAX কল করে সার্ভার থেকে HTML টুকরা লোড করবে এবং
#contentডিভে সেটি সন্নিবেশ করবে।
৫. ব্রাউজারে পরীক্ষা করা
৫.১. স্থানীয় সার্ভার চালানো
- সার্ভার রান করুন (যদি Flask ব্যবহার করেন)।
- ব্রাউজারে আপনার HTML ফাইলটি খুলুন (যদি স্থানীয়ভাবে HTML ফাইল চালান)।
- "Load Content" বোতামে ক্লিক করুন এবং দেখুন কিভাবে ডাইনামিক কন্টেন্ট লোড হচ্ছে।
সারসংক্ষেপ
- HTMX CDN ব্যবহার: HTMX কে আপনার HTML ফাইলে CDN লিঙ্কের মাধ্যমে অন্তর্ভুক্ত করুন।
- AJAX কল: HTMX ব্যবহার করে বোতাম ক্লিকের মাধ্যমে ডাইনামিক কন্টেন্ট লোড করুন।
- সার্ভার সাইড সেটআপ: প্রয়োজনে সার্ভার সেটআপ করুন।
HTMX কে CDN ব্যবহার করে অন্তর্ভুক্ত করা খুব সহজ এবং এটি আপনাকে ওয়েব অ্যাপ্লিকেশন তৈরি করতে দ্রুত সহায়তা করে।
HTMX এর সাথে কাজ করার জন্য সার্ভার সেটআপ
HTMX ব্যবহার করার জন্য একটি সার্ভার সেটআপ করা প্রয়োজন, যা ডাইনামিক কন্টেন্ট লোড করার জন্য HTTP রিকোয়েস্টগুলিকে পরিচালনা করবে। এখানে একটি সাধারণ সার্ভার সেটআপ করার জন্য Flask (Python এর একটি মাইক্রো ফ্রেমওয়ার্ক) ব্যবহার করার প্রক্রিয়া উল্লেখ করা হলো।
১. পরিবেশ প্রস্তুতি
১.১. Python ইনস্টলেশন
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে Python এবং pip ইনস্টল করা আছে। Python 3.x সংস্করণ ইনস্টল করা থাকলে নিচের কমান্ডটি ব্যবহার করে pip ইনস্টল করতে পারেন:
pip install Flask
২. Flask অ্যাপ তৈরি
২.১. নতুন ফোল্ডার তৈরি করা
একটি নতুন ফোল্ডার তৈরি করুন এবং সেখানে যান:
mkdir htmx-example
cd htmx-example
২.২. Flask অ্যাপ ফাইল তৈরি করা
একটি নতুন Python ফাইল তৈরি করুন, উদাহরণস্বরূপ app.py:
touch app.py
২.৩. Flask অ্যাপ কোড লিখুন
app.py ফাইলটি খুলুন এবং নিচের কোডটি যুক্ত করুন:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def index():
return render_template_string('''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h1>HTMX Example</h1>
<div id="content"></div>
<button hx-get="/load-content" hx-target="#content">Load Content</button>
</body>
</html>
''')
@app.route('/load-content')
def load_content():
return render_template_string('<p>This content is loaded dynamically!</p>')
if __name__ == '__main__':
app.run(debug=True)
৩. Flask অ্যাপ চালানো
৩.১. সার্ভার চালানো
আপনার টার্মিনালে নিচের কমান্ডটি চালান:
python app.py
- এটি আপনার Flask অ্যাপ্লিকেশনটি চালু করবে এবং ডিফল্টভাবে
http://127.0.0.1:5000/ঠিকানায় অ্যাক্সেসযোগ্য করবে।
৪. HTMX ব্যবহার করে কন্টেন্ট লোড করা
৪.১. ব্রাউজারে অ্যাপটি খুলুন
- ব্রাউজারে
http://127.0.0.1:5000/URL এ যান। - "Load Content" বোতামে ক্লিক করুন।
- দেখুন কিভাবে ডাইনামিক কন্টেন্ট লোড হচ্ছে।
সারসংক্ষেপ
- Python ইনস্টলেশন: নিশ্চিত করুন যে Python এবং pip ইনস্টল করা আছে।
- Flask অ্যাপ তৈরি:
app.pyফাইল তৈরি করুন এবং কোড লিখুন। - সার্ভার চালানো: Flask অ্যাপটি চালান এবং ব্রাউজারে অ্যাক্সেস করুন।
- HTMX ব্যবহার: HTMX ব্যবহার করে কন্টেন্ট লোডিং এবং ইন্টারঅ্যাকশনের প্রক্রিয়া উপভোগ করুন।
HTMX এর সাথে কাজ করার জন্য এই ধরনের সার্ভার সেটআপ সহজ এবং কার্যকরী। এটি আপনাকে ডাইনামিক এবং ইন্টারঅ্যাকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়ক হবে।
HTMX স্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করা খুবই সহজ। HTMX এর জন্য স্ক্রিপ্ট ফাইল HTML ফাইলে অন্তর্ভুক্ত করার মাধ্যমে বিভিন্ন ইন্টারঅ্যাক্টিভ ফিচার ব্যবহার করা যায়। HTMX এর CDN লিংক ব্যবহার করে সরাসরি স্ক্রিপ্ট যোগ করা সম্ভব, অথবা এটি লোকাল ফাইল হিসেবেও সংযুক্ত করা যায়।
নিচে HTMX স্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করার কয়েকটি উদাহরণ দেখানো হলো:
1. HTMX স্ক্রিপ্ট অন্তর্ভুক্ত করা (CDN ব্যবহার করে)
HTMX এর অফিসিয়াল CDN লিংক ব্যবহার করে HTML ফাইলে HTMX অন্তর্ভুক্ত করা যেতে পারে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example with CDN</title>
<!-- HTMX CDN লিংক যুক্ত করা -->
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h1>HTMX CDN Example</h1>
<!-- Fetch Data Button -->
<button hx-get="/get-data" hx-target="#content">Fetch Data</button>
<div id="content">Content will be loaded here...</div>
</body>
</html>
2. HTMX স্ক্রিপ্ট অন্তর্ভুক্ত করা (লোকাল ফাইল ব্যবহার করে)
যদি HTMX স্ক্রিপ্ট ফাইল লোকাল মেশিনে সংরক্ষণ করা হয়, তাহলে এটি HTML ফাইলে অন্তর্ভুক্ত করা যায়।
প্রথমে HTMX এর সর্বশেষ htmx.min.js ফাইলটি HTMX GitHub থেকে ডাউনলোড করে প্রজেক্টের ফোল্ডারে যুক্ত করতে হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX Example with Local File</title>
<!-- লোকাল HTMX স্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করা -->
<script src="js/htmx.min.js"></script>
</head>
<body>
<h1>HTMX Local File Example</h1>
<!-- Data Fetch Button -->
<button hx-get="/fetch-info" hx-target="#info">Get Information</button>
<div id="info">Information will appear here...</div>
</body>
</html>
3. উদাহরণসহ HTMX এর সাধারণ ফিচার ব্যবহার
HTMX এর সাধারণ কিছু ফিচার এবং তাদের Attribute ব্যবহার করে HTML ফাইল কনফিগার করার উদাহরণ এখানে দেওয়া হলো।
Example 1: GET Request ব্যবহার করে Data Fetching
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX GET Request Example</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h2>Fetch User Data</h2>
<!-- GET রিকোয়েস্টের উদাহরণ -->
<button hx-get="/api/user-data" hx-target="#user-info" hx-swap="innerHTML">Load User Data</button>
<div id="user-info">User data will be displayed here.</div>
</body>
</html>
ব্যাখ্যা:
- hx-get:
/api/user-dataURL এ GET রিকোয়েস্ট পাঠায়। - hx-target: রেসপন্সটি
#user-infodiv এর মধ্যে দেখানো হবে। - hx-swap:
innerHTMLব্যবহার করে#user-infoএর কন্টেন্ট আপডেট করা হবে।
Example 2: Form Submission (POST Request) ব্যবহার করে Data Submission
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX POST Request Example</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h2>Submit User Data</h2>
<!-- POST রিকোয়েস্টের উদাহরণ -->
<form hx-post="/submit-user" hx-target="#result">
<label for="name">Name:</label>
<input type="text" name="name" id="name" required>
<button type="submit">Submit</button>
</form>
<div id="result">Submission result will be displayed here.</div>
</body>
</html>
ব্যাখ্যা:
- hx-post:
/submit-userURL এ POST রিকোয়েস্ট পাঠায় এবং ফর্মের ডেটা পাঠায়। - hx-target:
#resultdiv এ রেসপন্স রেন্ডার করে।
Example 3: Content Update এবং Dynamic URL Change (hx-push-url)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX URL Push Example</title>
<script src="https://unpkg.com/htmx.org@1.8.4"></script>
</head>
<body>
<h2>Dynamic Content Load and URL Update</h2>
<!-- URL Update এবং Content Update এর উদাহরণ -->
<button hx-get="/new-section" hx-push-url="true" hx-target="#content">Load New Section</button>
<div id="content">Current section content...</div>
</body>
</html>
ব্যাখ্যা:
- hx-push-url: পেজের URL আপডেট করে যাতে ব্রাউজারের ব্যাক/ফরওয়ার্ড বাটন কাজ করে।
- hx-get এবং hx-target:
/new-sectionথেকে ডেটা নিয়ে#contentdiv এ রেন্ডার করে।
HTMX Attribute Reference
| Attribute | Description |
|---|---|
| hx-get | GET রিকোয়েস্ট পাঠায় এবং ডেটা ফেচ করে |
| hx-post | POST রিকোয়েস্ট পাঠায় এবং ডেটা সাবমিট করে |
| hx-put | PUT রিকোয়েস্ট পাঠায় ডেটা আপডেট করার জন্য |
| hx-delete | DELETE রিকোয়েস্ট পাঠায় ডেটা মুছে ফেলার জন্য |
| hx-swap | নির্দিষ্ট HTML এলিমেন্টে ডেটা আপডেট করতে ব্যবহৃত হয় |
| hx-target | নির্দিষ্ট DOM এলিমেন্টে রেসপন্স আপডেট করতে ব্যবহৃত হয় |
| hx-trigger | নির্দিষ্ট ইভেন্টে রিকোয়েস্ট পাঠায় |
| hx-push-url | URL আপডেট করতে এবং ব্রাউজার নেভিগেশনে সহায়ক |
উপসংহার
HTMX স্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করা খুবই সহজ। CDN লিংক ব্যবহার করে সরাসরি HTMX অন্তর্ভুক্ত করা যায় বা HTMX এর লোকাল ফাইল ব্যবহার করেও অন্তর্ভুক্ত করা সম্ভব। HTMX ব্যবহার করে HTML Attributes এর মাধ্যমে AJAX, Dynamic Content Loading, এবং URL Management করা যায়, যা ওয়েব ডেভেলপমেন্টে সময় বাঁচায় এবং কোড সরল রাখে।
Read more