Server থেকে ডেটা Update এবং Delete করা

BackboneJS Sync এবং Server Communication - ব্যাকবোনজেএস (BackboneJS) - Web Development

256

BackboneJS এ Server থেকে ডেটা আপডেট বা ডিলিট করা সাধারণত AJAX রিকোয়েস্ট ব্যবহার করে করা হয়। BackboneJS এর Model এবং Collection উভয়ই sync মেথড ব্যবহার করে ডেটা সার্ভারের সাথে ইন্টারঅ্যাক্ট করতে পারে। ডেটা আপডেট (Update) বা ডিলিট (Delete) করার জন্য আমরা save() এবং destroy() মেথড ব্যবহার করি। এগুলোর মাধ্যমে ডেটা সঠিকভাবে সার্ভারে পাঠানো হয় এবং সার্ভার থেকে রিপ্লাই পাওয়া যায়।


Model এর মাধ্যমে Server থেকে ডেটা Update করা

BackboneJS এ Model এর মাধ্যমে ডেটা আপডেট করতে save() মেথড ব্যবহার করা হয়। এই মেথডটি PUT বা POST HTTP মেথড ব্যবহার করে সার্ভারে ডেটা পাঠায় এবং ডেটা আপডেট করে।

উদাহরণ:

var Book = Backbone.Model.extend({
    urlRoot: '/api/books'  // এই URL এর মাধ্যমে সার্ভারে যোগাযোগ হবে
});

// নতুন মডেল তৈরি করা
var myBook = new Book({ id: 1, title: 'BackboneJS Basics', author: 'John Doe', pages: 200 });

// মডেলটি সার্ভারে আপডেট করা
myBook.save({ title: 'Updated BackboneJS Basics' }, {
    success: function(model, response) {
        console.log('Book updated successfully:', model.get('title'));
    },
    error: function(model, error) {
        console.log('Error updating book:', error);
    }
});

এখানে:

  • save() – এই মেথডটি মডেলের ডেটা সার্ভারে সেভ (এবং আপডেট) করে। যদি মডেলের id থাকে, তাহলে এটি PUT রিকোয়েস্ট পাঠায়, এবং নতুন মডেল হলে POST রিকোয়েস্ট পাঠায়।
  • urlRoot – এটা সেই URL যেখানে সার্ভারের সাথে ডেটা পাঠানো হয়। এই URL মডেল এর id এর সাথে যুক্ত হবে, যেমন /api/books/1 যদি id: 1 থাকে।

Collection এর মাধ্যমে Server থেকে ডেটা Update করা

BackboneJS এ Collection এর মাধ্যমে একাধিক মডেল আপডেট করতে set() এবং save() মেথড ব্যবহার করা হয়। Collection সাধারণত Model গুলোর গ্রুপ হয়ে থাকে, এবং যদি কোনো মডেল পরিবর্তিত হয়, তবে সেটা সার্ভারের সাথে সিঙ্ক্রোনাইজ করা যায়।

উদাহরণ:

var BookCollection = Backbone.Collection.extend({
    model: Book,
    url: '/api/books'
});

var books = new BookCollection();

// Collection থেকে একটি মডেল ফেচ করা
books.fetch({
    success: function(collection, response) {
        // প্রথম মডেলটি আপডেট করা
        var firstBook = collection.at(0);
        firstBook.save({ title: 'Updated Book Title' }, {
            success: function() {
                console.log('First book updated');
            },
            error: function() {
                console.log('Error updating book');
            }
        });
    }
});

এখানে:

  • fetch() – কোলেকশনের সমস্ত মডেল সার্ভার থেকে ফেচ করে এবং সেই ডেটা কোলেকশনে যোগ করে।
  • save() – কোলেকশনের মডেলটি আপডেট করা হয় এবং সার্ভারে পাঠানো হয়।

Model এর মাধ্যমে Server থেকে ডেটা Delete করা

BackboneJS এ Model এর মাধ্যমে ডেটা ডিলিট করতে destroy() মেথড ব্যবহার করা হয়। এটি DELETE HTTP মেথড ব্যবহার করে মডেলটিকে সার্ভার থেকে মুছে ফেলে।

উদাহরণ:

var Book = Backbone.Model.extend({
    urlRoot: '/api/books'
});

var myBook = new Book({ id: 1 });

// মডেল ডিলিট করা
myBook.destroy({
    success: function(model, response) {
        console.log('Book deleted successfully');
    },
    error: function(model, error) {
        console.log('Error deleting book:', error);
    }
});

এখানে:

  • destroy() – এই মেথডটি মডেলকে সার্ভার থেকে মুছে ফেলে। যদি মডেলটির id থাকে, তখন এটি DELETE রিকোয়েস্ট পাঠায়।

Collection এর মাধ্যমে Server থেকে ডেটা Delete করা

একাধিক মডেল ডিলিট করার জন্য Collection এর destroy() মেথড ব্যবহার করা হয়। যখন কোলেকশনের মডেলগুলোতে পরিবর্তন হয়, তখন সেটি ডিলিট করতে বা সার্ভারের সাথে সিঙ্ক্রোনাইজ করতে destroy() ব্যবহার করা হয়।

উদাহরণ:

var BookCollection = Backbone.Collection.extend({
    model: Book,
    url: '/api/books'
});

var books = new BookCollection();

// কোলেকশন থেকে একটি মডেল ডিলিট করা
books.fetch({
    success: function(collection) {
        var bookToDelete = collection.at(0);  // প্রথম বইটি নির্বাচন
        bookToDelete.destroy({
            success: function() {
                console.log('Book deleted from collection');
            },
            error: function() {
                console.log('Error deleting book from collection');
            }
        });
    }
});

এখানে:

  • destroy() – কোলেকশনের মডেলটি সার্ভার থেকে মুছে ফেলা হয়।

AJAX কল এর মাধ্যমে Custom Delete এবং Update

BackboneJS এর sync() মেথড ব্যবহার করে আপনি custom AJAX কলও করতে পারেন, যদি আপনি বিশেষ ধরনের HTTP মেথড ব্যবহার করতে চান বা অতিরিক্ত কনফিগারেশন প্রয়োজন হয়।

উদাহরণ:

var Book = Backbone.Model.extend({
    url: function() {
        return '/api/books/' + this.id; // Custom URL
    },

    // custom sync method
    sync: function(method, model, options) {
        if (method === 'update') {
            // Custom AJAX for updating
            return $.ajax({
                url: model.url(),
                type: 'PUT',
                data: model.toJSON(),
                success: options.success,
                error: options.error
            });
        } else if (method === 'delete') {
            // Custom AJAX for deleting
            return $.ajax({
                url: model.url(),
                type: 'DELETE',
                success: options.success,
                error: options.error
            });
        }
    }
});

var myBook = new Book({ id: 1, title: 'BackboneJS Guide' });

// Update custom sync
myBook.save({ title: 'Updated BackboneJS Guide' }, {
    success: function() {
        console.log('Custom update success');
    },
    error: function() {
        console.log('Custom update failed');
    }
});

// Delete custom sync
myBook.destroy({
    success: function() {
        console.log('Custom delete success');
    },
    error: function() {
        console.log('Custom delete failed');
    }
});

এখানে:

  • sync() – এখানে আমরা custom sync মেথড তৈরি করেছি যা AJAX কলের মাধ্যমে ডেটা আপডেট ও ডিলিট করতে সক্ষম।
  • url()url মেথডটি কাস্টম URL রিটার্ন করে, যা ডেটা পাঠানোর সময় ব্যবহার হবে।

সারাংশ

BackboneJS এ Server থেকে ডেটা আপডেট এবং ডিলিট করার জন্য মূলত save() এবং destroy() মেথড ব্যবহার করা হয়। আপনি মডেল বা কোলেকশন এর মাধ্যমে সার্ভারের সাথে যোগাযোগ করতে পারেন এবং ডেটা আপডেট বা মুছে ফেলতে পারেন। এই কাজগুলো AJAX রিকোয়েস্টের মাধ্যমে সম্পন্ন হয়, যা সার্ভারের সাথে ডেটা সিঙ্ক্রোনাইজ করতে সহায়তা করে।

  • save() – মডেল বা কোলেকশনের ডেটা আপডেট করার জন্য ব্যবহার হয়।
  • destroy() – মডেল বা কোলেকশন থেকে ডেটা ডিলিট করার জন্য ব্যবহার হয়।
  • sync() – কাস্টম AJAX কল ব্যবহার করে ডেটা আপডেট বা ডিলিট করার জন্য।
Content added By
Promotion

Are you sure to start over?

Loading...