Data Fetching এবং Submitting হল একটি অ্যাপ্লিকেশনের অন্যতম গুরুত্বপূর্ণ ফিচার, যা সার্ভার থেকে ডেটা আনা এবং সার্ভারে ডেটা প্রেরণ করতে ব্যবহৃত হয়। ExtJS তে, আপনি GET এবং POST রিকোয়েস্ট ব্যবহার করে ডেটা ফেচ এবং সাবমিট করতে পারেন। এটি AJAX (Asynchronous JavaScript and XML) কল ব্যবহার করে সার্ভারের সাথে যোগাযোগ করে এবং পেজ রিফ্রেশ না করেই ডেটা লোড বা সাবমিট করার সুযোগ দেয়।
এখানে, আমরা Ext.Ajax এবং Ext.data.Store ক্লাসের মাধ্যমে GET এবং POST রিকোয়েস্ট ব্যবহার করে ডেটা ফেচ এবং সাবমিট করার পদ্ধতি দেখবো।
GET Request সাধারণত সার্ভার থেকে ডেটা ফেচ করতে ব্যবহৃত হয়। ExtJS এ Ext.Ajax এর মাধ্যমে আপনি GET রিকোয়েস্ট করতে পারেন এবং সার্ভার থেকে ডেটা আনার জন্য callback functions ব্যবহার করতে পারেন।
Ext.Ajax.request({
url: 'https://api.example.com/data', // API বা সার্ভারের URL
method: 'GET', // GET রিকোয়েস্ট
success: function(response) {
var data = Ext.decode(response.responseText); // সার্ভার থেকে আসা JSON ডেটা ডিকোড করা
console.log('Data fetched:', data);
},
failure: function(response) {
console.log('Error fetching data:', response.status);
}
});
ব্যাখ্যা:
url
: GET রিকোয়েস্টের জন্য সার্ভারের URL।method
: HTTP মেথড হিসাবে GET
উল্লেখ করা হয়েছে।success
: রিকোয়েস্ট সফল হলে কলব্যাক ফাংশন। এখানে, ডেটা JSON আকারে ডিকোড করা হয়েছে।failure
: রিকোয়েস্ট ব্যর্থ হলে কলব্যাক ফাংশন। এখানে, ত্রুটির তথ্য লগ করা হচ্ছে।POST Request সাধারণত সার্ভারে ডেটা সাবমিট করতে ব্যবহৃত হয়। POST রিকোয়েস্টে, ইউজার ইনপুট বা অন্যান্য ডেটা সার্ভারে পাঠানো হয়। ExtJS তে Ext.Ajax ব্যবহার করে POST রিকোয়েস্ট করতে হয়।
Ext.Ajax.request({
url: 'https://api.example.com/submit', // API বা সার্ভারের URL
method: 'POST', // POST রিকোয়েস্ট
params: {
name: 'John Doe',
email: 'john.doe@example.com'
}, // ডেটা প্যারামিটার হিসাবে পাঠানো
success: function(response) {
console.log('Data submitted successfully:', response.responseText);
},
failure: function(response) {
console.log('Error submitting data:', response.status);
}
});
ব্যাখ্যা:
url
: POST রিকোয়েস্টের জন্য সার্ভারের URL।method
: HTTP মেথড হিসাবে POST
উল্লেখ করা হয়েছে।params
: পাঠানো ডেটা। এখানে name
এবং email
প্যারামিটার পাঠানো হচ্ছে।success
: রিকোয়েস্ট সফল হলে কলব্যাক ফাংশন, যেখানে সার্ভার থেকে প্রাপ্ত রেসপন্স প্রদর্শিত হচ্ছে।failure
: রিকোয়েস্ট ব্যর্থ হলে কলব্যাক ফাংশন।ExtJS এর Store ক্লাসটি ডেটা ম্যানেজমেন্ট এবং ফেচিংয়ের জন্য ব্যবহৃত হয়। Proxy কনফিগারেশন দিয়ে আপনি GET বা POST রিকোয়েস্টের মাধ্যমে স্টোরে ডেটা লোড করতে পারেন।
Ext.create('Ext.data.Store', {
storeId: 'userStore',
fields: ['id', 'name', 'email'],
proxy: {
type: 'ajax', // AJAX প্রক্সি ব্যবহার
url: 'https://api.example.com/users', // GET রিকোয়েস্টের URL
reader: {
type: 'json', // JSON ডেটা রিডার
rootProperty: 'users' // রেসপন্সের মধ্যে users আর্কাইভ থেকে ডেটা আসবে
}
},
autoLoad: true // স্টোর লোড হবে যখন অ্যাপ্লিকেশন শুরু হবে
});
এখানে:
proxy
: এটি ডেটা ফেচ করার জন্য AJAX রিকোয়েস্ট ব্যবহার করে।url
: GET রিকোয়েস্টের জন্য API URL।reader
: JSON রিডার সেট করা হয়েছে, যাতে সার্ভার থেকে আসা JSON ডেটা পড়া যায়।Ext.create('Ext.data.Store', {
storeId: 'userStore',
fields: ['id', 'name', 'email'],
proxy: {
type: 'ajax',
url: 'https://api.example.com/submit', // POST রিকোয়েস্টের URL
method: 'POST', // HTTP মেথড POST
writer: {
type: 'json',
writeAllFields: true // সব ফিল্ড লিখতে হবে
},
reader: {
type: 'json',
rootProperty: 'response'
}
},
data: [{ id: 1, name: 'John', email: 'john.doe@example.com' }],
autoSync: true // ডেটা সার্ভারে অটো সাবমিট হবে
});
এখানে:
method: 'POST'
: POST রিকোয়েস্ট ব্যবহার করা হয়েছে।writer
: POST রিকোয়েস্টের ডেটা পাঠানোর জন্য json
writer ব্যবহৃত হয়েছে।JSON হল ডেটা ফেচ এবং সাবমিট করার জন্য একটি জনপ্রিয় ফর্ম্যাট। ExtJS এ, সার্ভারের থেকে প্রাপ্ত JSON ডেটা reader ব্যবহার করে প্রসেস করা হয়।
Ext.Ajax.request({
url: 'https://api.example.com/data',
method: 'GET',
success: function(response) {
var data = Ext.decode(response.responseText); // JSON ডেটা ডিকোড করা
console.log('Data fetched:', data);
},
failure: function(response) {
console.log('Error fetching data:', response.status);
}
});
এখানে Ext.decode()
ব্যবহার করা হয়েছে, যা সার্ভারের JSON রেসপন্স ডেটাকে JavaScript অবজেক্টে রূপান্তরিত করবে।
GET বা POST রিকোয়েস্ট করার সময় সাধারণত কিছু ত্রুটি (Error) ঘটতে পারে, যেমন সার্ভার না পাওয়া, নেটওয়ার্ক সমস্যাসহ বিভিন্ন কারণে। এ ধরনের ত্রুটি হ্যান্ডলিংয়ের জন্য failure
কলব্যাক ফাংশন ব্যবহার করা হয়।
Ext.Ajax.request({
url: 'https://api.example.com/invalid-url',
method: 'GET',
success: function(response) {
var data = Ext.decode(response.responseText);
console.log('Data fetched:', data);
},
failure: function(response) {
if (response.status === 404) {
console.log('Error: Resource not found (404)');
} else if (response.status === 500) {
console.log('Error: Server error (500)');
} else {
console.log('Error:', response.statusText);
}
}
});
এখানে, failure
ফাংশনে সার্ভারের স্ট্যাটাস কোড অনুযায়ী ত্রুটি বার্তা প্রদর্শন করা হচ্ছে।
ExtJS তে GET এবং POST রিকোয়েস্ট ব্যবহার করে আপনি খুব সহজেই ডেটা ফেচ এবং সাবমিট করতে পারেন, যা আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ডায়নামিক করে তোলে।
Read more