AJAX (Asynchronous JavaScript and XML) হল একটি প্রযুক্তি যা ক্লায়েন্ট (ব্রাউজার) এবং সার্ভারের মধ্যে অ্যাসিঙ্ক্রোনাসভাবে ডেটা বিনিময় করতে ব্যবহৃত হয়, যার মাধ্যমে পেজ রিফ্রেশ না করেই ডেটা লোড বা সাবমিট করা যায়। ExtJS AJAX রিকোয়েস্ট ব্যবস্থাপনা এবং এর সাথে সম্পর্কিত Error Handling সহজভাবে সম্পাদন করার জন্য শক্তিশালী ফিচার প্রদান করে।
এখানে আমরা AJAX Request Management এবং Error Handling এর মাধ্যমে কীভাবে সার্ভার থেকে ডেটা লোড করা, পোস্ট করা, এবং ত্রুটি পরিচালনা করা যায় তা শিখব।
Ext.Ajax.request হল ExtJS এর একটি মেথড যা সার্ভার সাইডের সাথে AJAX রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়। এর মাধ্যমে GET, POST, PUT, DELETE ইত্যাদি HTTP মেথড ব্যবহার করে রিকোয়েস্ট করা যায় এবং সার্ভার থেকে প্রাপ্ত ডেটা অ্যাসিঙ্ক্রোনাসভাবে প্রক্রিয়া করা যায়।
Ext.Ajax.request({
url: 'your-endpoint-url', // সার্ভারের URL
method: 'GET', // HTTP মেথড (GET, POST, PUT, DELETE)
params: { // সার্ভারে পাঠানোর প্যারামিটার
key1: 'value1',
key2: 'value2'
},
success: function(response, opts) {
var obj = Ext.decode(response.responseText); // সার্ভারের রেসপন্স ডিকোড করা
console.log('Server response:', obj);
},
failure: function(response, opts) {
console.log('Request failed with status:', response.status);
}
});
url
: সার্ভারের URL যেখানে রিকোয়েস্ট পাঠানো হবে।method
: HTTP মেথড (GET, POST ইত্যাদি)।params
: সার্ভারে পাঠানো ডেটা (কী-ব্লুয়ালি)।success
: রিকোয়েস্ট সফল হলে কলব্যাক ফাংশন।failure
: রিকোয়েস্ট ব্যর্থ হলে কলব্যাক ফাংশন।Ext.Ajax.request({
url: 'https://example.com/api/saveData',
method: 'POST',
jsonData: {
name: 'John Doe',
email: 'john.doe@example.com'
},
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
console.log('Data saved:', obj);
},
failure: function(response, opts) {
console.log('Failed to save data:', response.status);
}
});
jsonData
: POST রিকোয়েস্টের জন্য JSON ডেটা পাঠানোর জন্য ব্যবহার করা হয়।এখন, Error Handling এর মাধ্যমে আমরা সার্ভার থেকে প্রাপ্ত ত্রুটি (যেমন, 404 বা 500 স্ট্যাটাস কোড) হ্যান্ডল করতে পারব। ExtJS এর failure কনফিগারেশন ব্যবহার করে আমরা ত্রুটির সঠিক হ্যান্ডলিং করতে পারি।
Ext.Ajax.request({
url: 'https://example.com/api/getData',
method: 'GET',
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
console.log('Data received:', obj);
},
failure: function(response, opts) {
// স্ট্যাটাস কোড চেক করা
if (response.status === 404) {
Ext.Msg.alert('Error', 'Resource not found');
} else if (response.status === 500) {
Ext.Msg.alert('Error', 'Internal server error');
} else {
Ext.Msg.alert('Error', 'Request failed with status: ' + response.status);
}
}
});
এখানে:
response.status
: সার্ভার থেকে প্রাপ্ত HTTP স্ট্যাটাস কোড।Ext.Msg.alert()
: ব্যবহারকারীকে ত্রুটি মেসেজ দেখানোর জন্য ExtJS এর একটি মেসেজ বক্স।Ext.Ajax.on
এক্সটিজেএস তে, Ext.Ajax.on
ব্যবহার করে গ্লোবালভাবে সার্ভারের রেসপন্স ত্রুটি হ্যান্ডলিং করা সম্ভব। এই পদ্ধতিটি সার্ভার থেকে ত্রুটির কোডের জন্য একটি সাধারণ হ্যান্ডলার প্রদান করে।
Ext.Ajax.on('requestexception', function(connection, response, options, eOpts) {
var status = response.status;
if (status === 500) {
Ext.Msg.alert('Server Error', 'There was an error processing your request.');
} else if (status === 404) {
Ext.Msg.alert('Not Found', 'The requested resource could not be found.');
}
});
এখানে:
requestexception
ইভেন্টটি সার্ভারের রিকোয়েস্টে ত্রুটি ঘটলে ট্রিগার হবে।সার্ভার রিকোয়েস্টের জন্য সময়সীমা (timeout) নির্ধারণ করা যেতে পারে। যদি সার্ভার একটি নির্দিষ্ট সময়ের মধ্যে রেসপন্স না করে, তবে timeout হ্যান্ডলার কার্যকর হবে।
Ext.Ajax.request({
url: 'https://example.com/api/slowRequest',
method: 'GET',
timeout: 5000, // 5 সেকেন্ড
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
console.log('Response received:', obj);
},
failure: function(response, opts) {
if (response.status === 0) {
Ext.Msg.alert('Error', 'Request timed out');
} else {
Ext.Msg.alert('Error', 'Request failed with status: ' + response.status);
}
}
});
এখানে:
timeout
: এটি রিকোয়েস্টের জন্য একটি সময়সীমা নির্ধারণ করে (মিলিসেকেন্ডে)।response.status === 0
: যখন সময়সীমা শেষ হয়ে যায় এবং সার্ভার থেকে কোনো রেসপন্স আসে না তখন এটি ট্রিগার হয়।যখন সার্ভার থেকে JSON ডেটা পাঠানো হয়, তখন Ext.decode()
ব্যবহার করে রেসপন্স ডেটা ডিকোড করা হয় এবং তা সহজে ব্যবহারের জন্য প্রক্রিয়া করা হয়।
Ext.Ajax.request({
url: 'https://example.com/api/getData',
method: 'GET',
success: function(response, opts) {
try {
var obj = Ext.decode(response.responseText); // JSON রেসপন্স ডিকোড করা
console.log('Data received:', obj);
} catch (e) {
Ext.Msg.alert('Error', 'Invalid JSON response');
}
},
failure: function(response, opts) {
Ext.Msg.alert('Error', 'Request failed with status: ' + response.status);
}
});
এখানে:
Ext.decode()
: এটি JSON স্ট্রিং থেকে জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করে।try-catch
: JSON ডেটা ডিকোড করার সময় কোনো ত্রুটি এলে তা হ্যান্ডেল করার জন্য ব্যবহার করা হয়।Ext.Ajax.request
মেথডের মাধ্যমে GET, POST, PUT, DELETE রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়।Ext.decode()
ব্যবহার করে সেটি ডিকোড করা হয়।এই সব ফিচারগুলির মাধ্যমে আপনি ExtJS তে কার্যকরীভাবে AJAX রিকোয়েস্ট ম্যানেজ এবং সার্ভার সাইড ত্রুটি হ্যান্ডল করতে পারবেন, যা আপনার অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং ইউজার-বান্ধব করে তোলে।