BackboneJS Sync এবং Server Communication

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

259

BackboneJS এর Sync মেথড একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা মডেল এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করতে ব্যবহৃত হয়। এটি মডেল বা সংগ্রহের ডেটা সার্ভার থেকে পেতে, সেভ করতে, এবং আপডেট করতে সাহায্য করে। BackboneJS ডিফল্টভাবে sync মেথডের মাধ্যমে AJAX রিকোয়েস্ট পরিচালনা করে, কিন্তু প্রয়োজনে এটি কাস্টমাইজও করা যায়।


1. Backbone Sync মেথড

BackboneJS এ sync মেথড হলো মডেল এবং সার্ভারের মধ্যে ডেটা আদান-প্রদানের প্রধান উপায়। এটি ডিফল্টভাবে GET, POST, PUT, এবং DELETE HTTP মেথডগুলির সাথে কাজ করে, এবং সার্ভারের সাথে ডেটা সিঙ্ক্রোনাইজ করার জন্য AJAX কল ব্যবহার করে।

BackboneJS এর sync মেথডের মূল কাজ হলো:

  • মডেল বা সংগ্রহের ডেটা সার্ভার থেকে লোড করা (GET),
  • নতুন ডেটা সার্ভারে পাঠানো (POST),
  • বিদ্যমান ডেটা আপডেট করা (PUT),
  • ডেটা মুছে ফেলা (DELETE)।

2. Backbone Model এর সাথে Sync ব্যবহার

BackboneJS মডেল অবজেক্টের মধ্যে sync মেথড ব্যবহার করে সার্ভারের সাথে ডেটা আদান-প্রদান করা হয়। সাধারণত, মডেলটির save(), fetch(), destroy() মেথডগুলি স্বয়ংক্রিয়ভাবে sync মেথডকে কল করে। তবে, প্রয়োজনে আপনি কাস্টম sync মেথডও তৈরি করতে পারেন।

উদাহরণ: Sync ব্যবহার করে মডেল তৈরি এবং ডেটা সেভ করা

var Task = Backbone.Model.extend({
    urlRoot: '/tasks',  // সার্ভারের URL যেখানে ডেটা সেভ/ফেচ হবে
});

var myTask = new Task({
    title: 'Finish Backbone Tutorial',
    description: 'Complete the tutorial on BackboneJS',
});

// সার্ভারে ডেটা সেভ করা
myTask.save();  // POST রিকোয়েস্ট পাঠানো হবে /tasks URL এ

এখানে:

  • save() মেথড কল করা হলে, BackboneJS স্বয়ংক্রিয়ভাবে sync মেথডে একটি POST রিকোয়েস্ট পাঠাবে, যা সার্ভারে নতুন ডেটা সেভ করবে।
  • urlRoot প্রপার্টি মডেলটির সার্ভারের URL নির্ধারণ করে।

উদাহরণ: মডেল থেকে ডেটা ফেচ করা

var myTask = new Task({ id: 1 });
myTask.fetch();  // GET রিকোয়েস্ট পাঠানো হবে /tasks/1 URL এ

এখানে:

  • fetch() মেথড সার্ভার থেকে ডেটা GET রিকোয়েস্ট পাঠিয়ে লোড করে, এবং মডেলটিতে সেট করে।

3. Backbone Collection এবং Sync

BackboneJS এর Collection একটি মডেলের গ্রুপ, এবং এটি ডেটার একটি সিরিজ বা অ্যারে হিসেবে কাজ করে। Collection এর fetch() এবং create() মেথডের মাধ্যমে আপনি সার্ভার থেকে একটি সংগ্রহ (data set) লোড করতে বা নতুন ডেটা সেভ করতে পারেন।

উদাহরণ: Collection থেকে ডেটা ফেচ করা

var TaskCollection = Backbone.Collection.extend({
    model: Task,
    url: '/tasks',  // সার্ভারের URL যেখানে সংগ্রহের ডেটা ফেচ হবে
});

var tasks = new TaskCollection();
tasks.fetch();  // GET রিকোয়েস্ট পাঠানো হবে /tasks URL এ

এখানে:

  • fetch() মেথড কল করলে, BackboneJS সার্ভারে GET রিকোয়েস্ট পাঠাবে এবং সমস্ত টাস্কের ডেটা লোড করবে।

উদাহরণ: Collection এ নতুন মডেল যোগ করা

var newTask = tasks.create({
    title: 'Write Blog Post',
    description: 'Post about BackboneJS on my blog',
});  // POST রিকোয়েস্ট পাঠানো হবে /tasks URL এ

এখানে:

  • create() মেথড ব্যবহার করে আপনি একটি নতুন মডেল তৈরি এবং তা সংগ্রহে যুক্ত করতে পারেন, যা স্বয়ংক্রিয়ভাবে সার্ভারে একটি POST রিকোয়েস্ট পাঠায়।

4. Backbone Sync মেথড কাস্টমাইজ করা

আপনি যদি আপনার বিশেষ প্রয়োজন অনুযায়ী ডেটা পাঠাতে বা গ্রহণ করতে চান, তবে BackboneJS এর sync মেথড কাস্টমাইজ করতে পারেন। এর মাধ্যমে আপনি API কলের জন্য কাস্টম প্যারামিটার বা হেডার সেট করতে পারেন।

উদাহরণ: কাস্টম Sync মেথড

var Task = Backbone.Model.extend({
    urlRoot: '/tasks',
    
    sync: function(method, model, options) {
        if (method === 'create' || method === 'update') {
            options.data = JSON.stringify(model.toJSON());  // ডেটা JSON আকারে পাঠানো
            options.contentType = 'application/json';  // Content-Type হেডার
        }
        return Backbone.sync(method, model, options);  // ডিফল্ট sync মেথড কল করা
    }
});

এখানে:

  • sync মেথডটি কাস্টমাইজ করা হয়েছে যাতে POST বা PUT রিকোয়েস্টে ডেটা JSON ফরম্যাটে পাঠানো হয় এবং Content-Type হেডার সঠিকভাবে সেট করা হয়।
  • Backbone.sync মেথডটি কল করার মাধ্যমে আপনি ডিফল্ট sync মেথডটি ব্যবহার করতে পারবেন।

5. Error Handling এবং Sync মেথডে Callback

BackboneJS এর sync মেথডের সাথে success এবং error কলব্যাক ফাংশন ব্যবহার করে আপনি সার্ভারের রেসপন্সের উপর ভিত্তি করে কাজ করতে পারেন।

উদাহরণ: Error Handling

var task = new Task({ id: 1 });

task.fetch({
    success: function(model, response) {
        console.log('Task loaded successfully!', response);
    },
    error: function(model, xhr, options) {
        console.log('Failed to load task', xhr.responseText);
    }
});

এখানে:

  • success কলব্যাক ফাংশন সার্ভারের সফল রেসপন্স পাওয়ার পর কল হবে।
  • error কলব্যাক ফাংশন সার্ভার থেকে ত্রুটি (যেমন 404 বা 500) পাওয়া গেলে কল হবে।

6. AJAX এর সাথে Backbone Sync

BackboneJS sync মেথডটি সাধারণত AJAX রিকোয়েস্ট ব্যবহার করে ডেটা সিঙ্ক্রোনাইজ করে। আপনি jQuery বা অন্য কোনো AJAX লাইব্রেরি ব্যবহার করে রিকোয়েস্টগুলো কাস্টমাইজ করতে পারেন।

উদাহরণ: jQuery এর মাধ্যমে কাস্টম AJAX রিকোয়েস্ট

var Task = Backbone.Model.extend({
    urlRoot: '/tasks',
    
    sync: function(method, model, options) {
        if (method === 'read') {
            return $.ajax({
                url: model.url(),
                method: 'GET',
                success: function(response) {
                    model.set(response);
                },
                error: function(xhr, status, error) {
                    console.log('Error loading data');
                }
            });
        }
        return Backbone.sync(method, model, options);
    }
});

এখানে:

  • sync মেথড কাস্টমাইজ করা হয়েছে যাতে read অপারেশন (যেমন fetch()) জন্য jQuery এর $.ajax() কল করা হয়।

সারাংশ

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

  • sync মেথড BackboneJS এর মূল উপাদান যা ডেটা সার্ভারের সাথে আদান-প্রদান করতে সাহায্য করে।
  • AJAX ব্যবহার করে আপনি কাস্টম রিকোয়েস্ট এবং হ্যান্ডলিং তৈরি করতে পারেন।
  • success এবং error কলব্যাক মেথডের মাধ্যমে সার্ভারের রেসপন্সের ওপর ভিত্তি করে কার্যকরী প্রতিক্রিয়া তৈরি করতে পারেন।

এটি BackboneJS অ্যাপ্লিকেশনের সাথে সার্ভার কমিউনিকেশন এবং ডেটা সিঙ্ক্রোনাইজেশন সহজ করে তোলে।

Content added By

BackboneJS একটি মডুলার JavaScript ফ্রেমওয়ার্ক, যা সাধারণত Single Page Applications (SPA) তৈরি করতে ব্যবহৃত হয়। এটি মডেল, ভিউ, কন্ট্রোলার এবং রাউটারের মাধ্যমে অ্যাপ্লিকেশনটির কাঠামো তৈরি করে। BackboneJS এর সাথে RESTful API ব্যবহারের মাধ্যমে, আপনি ডেটা পরিচালনা করতে পারেন এবং সার্ভার থেকে ডেটা পাঠাতে বা গ্রহণ করতে পারেন। REST (Representational State Transfer) একটি আদর্শ আর্কিটেকচার স্টাইল যা ওয়েব সার্ভিসগুলির মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। BackboneJS সাধারণত এই RESTful API এর মাধ্যমে HTTP রিকোয়েস্ট যেমন GET, POST, PUT, এবং DELETE ব্যবহার করে ডেটা নিয়ে আসে এবং পাঠায়।


1. BackboneJS এবং RESTful API এর মৌলিক সম্পর্ক

BackboneJS মডেলগুলি সাধারণত RESTful API এর সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। Backbone.Model স্বয়ংক্রিয়ভাবে HTTP রিকোয়েস্ট তৈরি করে, যেমন:

  • GET: ডেটা সার্ভার থেকে আনার জন্য
  • POST: নতুন ডেটা তৈরি করার জন্য
  • PUT: বিদ্যমান ডেটা আপডেট করার জন্য
  • DELETE: ডেটা মুছে ফেলার জন্য

BackboneJS এর sync() মেথড সার্ভারের সাথে যোগাযোগ করার জন্য ব্যবহার করা হয় এবং এটি মডেল বা সংগ্রহের উপর ভিত্তি করে RESTful রিকোয়েস্ট তৈরি করে।


2. Backbone.Model এবং RESTful API এর সাথে কাজ করা

BackboneJS এর Model অটো রিকোয়েস্ট করে যদি আপনি নির্দিষ্ট মেথডগুলি ব্যবহার করেন। এর মাধ্যমে আপনি API থেকে ডেটা লোড, আপডেট, বা ডিলিট করতে পারবেন।

উদাহরণ: GET, POST, PUT, DELETE রিকোয়েস্ট

// Book মডেল তৈরি করা
var Book = Backbone.Model.extend({
    urlRoot: '/api/books', // API এর এন্ডপয়েন্ট

    // নতুন Book তৈরি করা (POST রিকোয়েস্ট)
    saveBook: function() {
        this.save({}, {
            success: function(model, response) {
                console.log('Book saved successfully:', response);
            },
            error: function(model, response) {
                console.log('Error saving book:', response);
            }
        });
    },

    // Book ডেটা লোড করা (GET রিকোয়েস্ট)
    fetchBook: function(id) {
        this.fetch({
            url: '/api/books/' + id,
            success: function(model, response) {
                console.log('Book fetched:', response);
            },
            error: function(model, response) {
                console.log('Error fetching book:', response);
            }
        });
    },

    // Book আপডেট করা (PUT রিকোয়েস্ট)
    updateBook: function(id) {
        this.set({ title: 'Updated Title' });
        this.save({}, {
            url: '/api/books/' + id, // PUT রিকোয়েস্টের জন্য URL কাস্টমাইজ করা
            success: function(model, response) {
                console.log('Book updated:', response);
            },
            error: function(model, response) {
                console.log('Error updating book:', response);
            }
        });
    },

    // Book ডিলিট করা (DELETE রিকোয়েস্ট)
    deleteBook: function(id) {
        this.destroy({
            url: '/api/books/' + id, // DELETE রিকোয়েস্টের জন্য URL কাস্টমাইজ করা
            success: function(model, response) {
                console.log('Book deleted:', response);
            },
            error: function(model, response) {
                console.log('Error deleting book:', response);
            }
        });
    }
});

// Book মডেল ইনস্ট্যানশিয়েট করা
var myBook = new Book({ id: 1 });

এখানে:

  • saveBook(): নতুন বুক তৈরি করার জন্য POST রিকোয়েস্ট পাঠানো হয়।
  • fetchBook(): একটি নির্দিষ্ট বুকের তথ্য GET রিকোয়েস্টের মাধ্যমে ফেচ করা হয়।
  • updateBook(): একটি বুক আপডেট করার জন্য PUT রিকোয়েস্ট পাঠানো হয়।
  • deleteBook(): একটি বুক মুছে ফেলার জন্য DELETE রিকোয়েস্ট পাঠানো হয়।

3. Backbone.Collection এবং RESTful API

BackboneJS এর Collection ব্যবহৃত হয় একাধিক মডেল নিয়ে কাজ করার জন্য এবং এটি স্বয়ংক্রিয়ভাবে সার্ভার থেকে একাধিক মডেল ফেচ করতে পারে। এটি রিকোয়েস্টের জন্য RESTful API ব্যবহার করে।

উদাহরণ: Backbone.Collection এর মাধ্যমে API থেকে ডেটা ফেচ করা

// BookCollection তৈরি করা
var BookCollection = Backbone.Collection.extend({
    model: Book, // মডেল নির্ধারণ করা

    url: '/api/books', // API এন্ডপয়েন্ট

    // Collection এর সব বই ফেচ করা (GET রিকোয়েস্ট)
    fetchBooks: function() {
        this.fetch({
            success: function(collection, response) {
                console.log('Books fetched:', response);
            },
            error: function(collection, response) {
                console.log('Error fetching books:', response);
            }
        });
    }
});

// BookCollection ইনস্ট্যানশিয়েট করা
var books = new BookCollection();

// বই ফেচ করা
books.fetchBooks();

এখানে:

  • fetchBooks(): GET রিকোয়েস্ট পাঠানো হয় /api/books এন্ডপয়েন্টে এবং সব বইয়ের তালিকা ফেচ করা হয়।

4. Backbone.sync মেথড এবং Custom API Integration

Backbone.sync() একটি অতি গুরুত্বপূর্ণ মেথড যা Backbone এর সমস্ত সার্ভারের সাথে যোগাযোগের জন্য ব্যবহৃত হয়। এটি RESTful API এর রিকোয়েস্টগুলিকে কাস্টমাইজ করার সুযোগ প্রদান করে। যদি আপনি কোনো কাস্টম API এন্টারফেস তৈরি করতে চান, তবে sync() মেথড ওভাররাইড করতে পারেন।

উদাহরণ: Backbone.sync কাস্টমাইজ করা

// Backbone.sync কাস্টমাইজ করা
Backbone.sync = function(method, model, options) {
    var url = model.url();

    // GET রিকোয়েস্টের জন্য কাস্টম URL তৈরি করা
    if (method === 'read') {
        url = '/api/custom-books';
    }

    // কাস্টম রিকোয়েস্ট অপশন
    var requestOptions = {
        url: url,
        type: method === 'create' ? 'POST' : method === 'update' ? 'PUT' : 'GET',
        dataType: 'json',
        success: function(response) {
            options.success && options.success(response);
        },
        error: function(xhr, status, error) {
            options.error && options.error(xhr, status, error);
        }
    };

    // যদি ডেটা রয়েছে, সেটি পাঠানো হবে
    if (model && model.toJSON) {
        requestOptions.data = JSON.stringify(model.toJSON());
        requestOptions.contentType = 'application/json';
    }

    // AJAX রিকোয়েস্ট পাঠানো
    $.ajax(requestOptions);
};

এখানে, sync() মেথড কাস্টমাইজ করে সার্ভার রিকোয়েস্টের জন্য GET, POST, PUT, এবং DELETE কাস্টমাইজড URL ব্যবহার করা হয়েছে।


সারাংশ

BackboneJS এবং RESTful API এর মধ্যে ইন্টিগ্রেশন সহজ, এবং এটি Model এবং Collection এর মাধ্যমে HTTP রিকোয়েস্ট পরিচালনা করে। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশন থেকে সার্ভারে ডেটা পাঠাতে এবং গ্রহণ করতে পারেন:

  • GET: ডেটা ফেচ করার জন্য
  • POST: নতুন ডেটা তৈরি করার জন্য
  • PUT: বিদ্যমান ডেটা আপডেট করার জন্য
  • DELETE: ডেটা মুছে ফেলার জন্য

BackboneJS এর sync() মেথড এবং কাস্টম API ইন্টিগ্রেশন এর কার্যকারিতা আরও বৃদ্ধি করে।

Content added By

BackboneJS তে Sync হলো একটি অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট যা মডেল, কালেকশন এবং সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজ করার জন্য ব্যবহৃত হয়। এটি Backbone এর ডিফল্ট ইমপ্লিমেন্টেশন ব্যবহার করে RESTful API এর মাধ্যমে ডেটা লোড ও সেভ করে। BackboneJS মডেল এবং কালেকশনে ডেটা লোড ও সেভ করার জন্য sync মেথড ব্যবহার করা হয়।


1. Backbone.sync মেথডের ভূমিকা

BackboneJS এর sync() মেথডের মাধ্যমে আপনি মডেল বা কালেকশন থেকে ডেটা সার্ভারে পাঠানো (সেভ করা) অথবা সার্ভার থেকে ডেটা লোড করার কাজ করতে পারেন। এটি create, read, update, এবং delete (CRUD) অপারেশনগুলো সম্পাদন করার জন্য ব্যবহৃত হয়।

ডিফল্টভাবে, Backbone REST প্রোটোকল ব্যবহার করে, যার মাধ্যমে HTTP মেথডগুলি (GET, POST, PUT, DELETE) সার্ভার ইন্টারঅ্যাকশন পরিচালনা করে।


2. Backbone.sync এর মাধ্যমে ডেটা লোড এবং সেভ করা

2.1 Model এর মাধ্যমে ডেটা লোড এবং সেভ করা

Backbone মডেল দিয়ে ডেটা সেভ ও লোড করার জন্য বিভিন্ন মেথড রয়েছে, যেমন save() এবং fetch()। এগুলো sync মেথডের উপর নির্ভর করে কাজ করে।

2.1.1 Model থেকে ডেটা লোড করা (fetch)

fetch() মেথডটি সার্ভার থেকে মডেলটির ডেটা লোড করার জন্য ব্যবহৃত হয়। এটি একটি HTTP GET রিকুয়েস্ট সার্ভারে পাঠায় এবং মডেলের ডেটা আপডেট করে।

var Book = Backbone.Model.extend({
    urlRoot: '/books'  // URL রুট সেট করা
});

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

// সার্ভার থেকে ডেটা লোড করা
myBook.fetch({
    success: function(model, response) {
        console.log('Data loaded successfully:', response);
    },
    error: function(model, response) {
        console.log('Error loading data:', response);
    }
});

এখানে:

  • urlRoot মডেলের জন্য সার্ভারের রুট URL নির্ধারণ করে, যেখানে ডেটা লোড হবে।
  • fetch() মেথড HTTP GET রিকুয়েস্ট পাঠায় এবং মডেলের ডেটা আপডেট করে।
2.1.2 Model এ ডেটা সেভ করা (save)

save() মেথডটি মডেলের ডেটা সার্ভারে সেভ করার জন্য ব্যবহৃত হয়। এটি একটি HTTP POST বা PUT রিকুয়েস্ট পাঠায় (ডেটা যদি নতুন হয় তবে POST, আর যদি আপডেট হয় তবে PUT)।

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

var myBook = new Book({ id: 1, title: 'BackboneJS for Beginners', author: 'John Doe' });

// ডেটা সার্ভারে সেভ করা
myBook.save(null, {
    success: function(model, response) {
        console.log('Data saved successfully:', response);
    },
    error: function(model, response) {
        console.log('Error saving data:', response);
    }
});

এখানে:

  • save() মেথডটি সার্ভারে ডেটা সেভ করার জন্য ব্যবহৃত হয়।
  • মডেলটির ডেটা যদি নতুন হয়, তবে এটি POST রিকুয়েস্ট পাঠাবে, আর যদি মডেলটি ইতিমধ্যে সার্ভারে থাকে, তবে এটি PUT রিকুয়েস্ট পাঠাবে।

2.2 Collection এর মাধ্যমে ডেটা লোড এবং সেভ করা

BackboneJS তে Collection একটি গ্রুপ অব মডেল এর সমষ্টি। এটি মডেলগুলোকে পরিচালনা করতে সাহায্য করে এবং সেই মডেলগুলোর ডেটা লোড ও সেভ করার জন্যও sync ব্যবহার করা হয়।

2.2.1 Collection থেকে ডেটা লোড করা (fetch)

fetch() মেথডটি কালেকশনের সমস্ত মডেলের ডেটা সার্ভার থেকে লোড করতে ব্যবহৃত হয়। এটি HTTP GET রিকুয়েস্ট পাঠায় এবং সমস্ত মডেলকে আপডেট করে।

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

var Books = Backbone.Collection.extend({
    model: Book,
    url: '/books'  // সমস্ত বইয়ের ডেটা লোড করতে URL সেট করা
});

var myBooks = new Books();

// সার্ভার থেকে সমস্ত বইয়ের ডেটা লোড করা
myBooks.fetch({
    success: function(collection, response) {
        console.log('Books loaded successfully:', response);
    },
    error: function(collection, response) {
        console.log('Error loading books:', response);
    }
});

এখানে:

  • url এর মাধ্যমে সমস্ত বইয়ের ডেটা লোড করার জন্য URL সেট করা হয়েছে।
  • fetch() কল করে সমস্ত মডেলের ডেটা সার্ভার থেকে লোড করা হয়েছে।
2.2.2 Collection এ ডেটা সেভ করা (create)

কালেকশনে নতুন মডেল যুক্ত করার জন্য create() মেথড ব্যবহার করা হয়। এটি একটি HTTP POST রিকুয়েস্ট পাঠায় নতুন মডেল সার্ভারে সেভ করার জন্য।

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

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

var myBooks = new Books();

// নতুন বই তৈরি করে কালেকশনে যোগ করা
myBooks.create({ title: 'BackboneJS for Beginners', author: 'John Doe' }, {
    success: function(model, response) {
        console.log('Book created successfully:', response);
    },
    error: function(model, response) {
        console.log('Error creating book:', response);
    }
});

এখানে:

  • create() মেথডটি একটি নতুন বই (মডেল) তৈরি করে এবং সেই বইটি কালেকশনে যুক্ত করে। এটি POST রিকুয়েস্ট পাঠায়।

3. Custom Sync মেথড ব্যবহার

BackboneJS তে ডিফল্ট sync() মেথড ব্যবহার করা হয়, কিন্তু আপনি যদি সার্ভারের API বা অন্যান্য নেটওয়ার্ক ইন্টারঅ্যাকশনের জন্য কাস্টম সিঙ্ক মেথড তৈরি করতে চান, তবে আপনি নিজের sync() মেথড তৈরি করতে পারেন।

var Book = Backbone.Model.extend({
    urlRoot: '/books',

    // কাস্টম sync মেথড
    sync: function(method, model, options) {
        if (method === 'read') {
            // GET রিকুয়েস্টের জন্য কাস্টম কোড
            console.log('Fetching data with custom sync');
        }
        // অন্যান্য CRUD অপারেশনের জন্য কাস্টম লজিক
        return Backbone.sync.apply(this, arguments);
    }
});

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

এখানে:

  • sync() মেথডটি কাস্টমভাবে ওভাররাইড করা হয়েছে যাতে সার্ভারের সাথে ইন্টারঅ্যাকশন করার আগে কিছু বিশেষ লজিক সম্পাদন করা যায়।

সারাংশ

BackboneJS এর sync মেথড ডেটা লোড ও সেভ করার জন্য অত্যন্ত গুরুত্বপূর্ণ। এটি মডেল এবং কালেকশনের মাধ্যমে সার্ভারের সাথে ইন্টারঅ্যাকশন করতে ব্যবহৃত হয়, এবং fetch(), save(), create() ইত্যাদি মেথডের মাধ্যমে ডেটা সার্ভার থেকে লোড বা সেভ করা হয়। ডিফল্টভাবে, BackboneJS RESTful API ব্যবহার করে HTTP রিকুয়েস্ট পাঠায়, তবে আপনি চাইলে কাস্টম sync মেথড ব্যবহার করে সার্ভারের ইন্টারঅ্যাকশন কাস্টমাইজও করতে পারেন।

Content added By

BackboneJS Model এবং Collection ক্লাসগুলোকে server-side interaction এর জন্য ব্যবহার করা যেতে পারে। এতে আপনি AJAX বা অন্যান্য HTTP রিকোয়েস্ট ব্যবহার করে RESTful API এর মাধ্যমে ডেটা লোড এবং সেভ করতে পারেন। BackboneJS এই ধরনের ইন্টারঅ্যাকশন সহজ করে দেয়, কারণ এটি sync মেথডের মাধ্যমে সার্ভারের সাথে যোগাযোগ সহজভাবে পরিচালনা করতে সহায়তা করে।

BackboneJS Model এবং Collection এর মধ্যে সার্ভার সাইড ইন্টারঅ্যাকশন মূলত CRUD (Create, Read, Update, Delete) অপারেশনগুলো পরিচালনা করে। চলুন, দেখে নেওয়া যাক কিভাবে এগুলো ব্যবহার করা যায়।


1. Model এর মাধ্যমে Server-Side Interaction

BackboneJS এর Model ক্লাস ব্যবহার করে আপনি একক ডেটার সাথে সার্ভার থেকে ডেটা ফেচ বা সেভ করতে পারেন। এটি sync মেথড ব্যবহার করে, যা ডেটা সেভ বা ফেচ করার সময় HTTP রিকোয়েস্ট পাঠায় এবং সার্ভারের রেসপন্স গ্রহণ করে।

Model: Server-Side Interaction Example

var Task = Backbone.Model.extend({
    urlRoot: '/api/tasks',  // সার্ভারের URL যা এই মডেলের জন্য ব্যবহার হবে

    defaults: {
        title: 'New Task',
        completed: false
    },

    // এই মডেলটি যখন সার্ভারে সেভ হবে, তখন এটি POST রিকোয়েস্ট করবে
    saveTask: function() {
        this.save({ title: this.get('title'), completed: this.get('completed') });
    },

    // এই মডেলটি যখন সার্ভার থেকে ফেচ হবে, তখন এটি GET রিকোয়েস্ট করবে
    fetchTask: function() {
        this.fetch();
    }
});

// নতুন টাস্ক তৈরি এবং ফেচ করা
var task = new Task({ id: 1 });
task.fetchTask();  // সার্ভার থেকে টাস্কের ডেটা ফেচ করবে

// টাস্ক সেভ করা
task.saveTask();  // টাস্কের নতুন ডেটা সার্ভারে সেভ হবে

Model এর সার্ভার রিকোয়েস্ট

BackboneJS স্বয়ংক্রিয়ভাবে GET, POST, PUT, এবং DELETE HTTP রিকোয়েস্ট পরিচালনা করে, যখন আপনি fetch(), save() এবং destroy() মেথড ব্যবহার করেন।

  • fetch(): এটি একটি GET রিকোয়েস্ট পাঠায় সার্ভার থেকে ডেটা ফেচ করার জন্য।
  • save(): এটি একটি POST বা PUT রিকোয়েস্ট পাঠায়, যদি মডেল নতুন হয় তবে POST এবং যদি মডেল আপডেট হয় তবে PUT রিকোয়েস্ট পাঠায়।
  • destroy(): এটি একটি DELETE রিকোয়েস্ট পাঠায়, মডেলটি সার্ভার থেকে মুছে ফেলতে।

2. Collection এর মাধ্যমে Server-Side Interaction

BackboneJS এর Collection ক্লাস ব্যবহার করে আপনি একাধিক মডেলের (models) সাথে সার্ভার থেকে ডেটা ফেচ বা সেভ করতে পারেন। Collection এর sync মেথড একইভাবে কাজ করে, কিন্তু এটি গ্রুপ মডেলগুলির উপর ক্রিয়াকলাপ চালায়।

Collection: Server-Side Interaction Example

var TaskList = Backbone.Collection.extend({
    model: Task,  // এই Collection শুধুমাত্র Task মডেল ধারণ করবে
    url: '/api/tasks'  // সার্ভারের URL
});

// সার্ভার থেকে সমস্ত টাস্ক ফেচ করা
var tasks = new TaskList();
tasks.fetch({
    success: function(collection, response, options) {
        console.log('Tasks fetched successfully:', collection.toJSON());
    },
    error: function(collection, response, options) {
        console.log('Error fetching tasks');
    }
});

// নতুন টাস্ক সার্ভারে সেভ করা
var newTask = new Task({ title: 'New Task', completed: false });
tasks.create(newTask, {
    success: function(model, response, options) {
        console.log('New task created:', model.toJSON());
    },
    error: function(model, response, options) {
        console.log('Error creating task');
    }
});

Collection এর সার্ভার রিকোয়েস্ট

BackboneJS Collection এর মাধ্যমে আপনি POST, GET, PUT, এবং DELETE রিকোয়েস্টগুলো ব্যবহার করতে পারেন:

  • fetch(): সমস্ত মডেল সংগ্রহ করতে GET রিকোয়েস্ট পাঠাবে।
  • create(): নতুন মডেল তৈরি করতে POST রিকোয়েস্ট পাঠাবে।
  • update(): মডেল আপডেট করতে PUT রিকোয়েস্ট পাঠাবে।
  • destroy(): মডেল মুছে ফেলতে DELETE রিকোয়েস্ট পাঠাবে।

3. BackboneJS Model এবং Collection এর সাথে Custom Sync

BackboneJS এর sync মেথড ডিফল্টভাবে ডেটাবেস বা সার্ভারের সাথে যোগাযোগের জন্য HTTP রিকোয়েস্ট ব্যবহারের জন্য কনফিগার করা থাকে। তবে, আপনি যদি প্রয়োজনীয় কাস্টম সার্ভার ইন্টারঅ্যাকশন চান, তাহলে আপনি নিজে একটি custom sync মেথডও তৈরি করতে পারেন।

Custom Sync Example

var Task = Backbone.Model.extend({
    urlRoot: '/api/tasks',

    // Custom Sync method
    sync: function(method, model, options) {
        if (method === 'read') {
            // GET রিকোয়েস্টের জন্য কাস্টম কোড
            options.url = '/api/custom_tasks';
            return Backbone.sync.call(this, method, model, options);
        } else if (method === 'create') {
            // POST রিকোয়েস্টের জন্য কাস্টম কোড
            options.url = '/api/create_task';
            return Backbone.sync.call(this, method, model, options);
        }
        // অন্যান্য রিকোয়েস্টের জন্য ডিফল্ট sync মেথড
        return Backbone.sync.call(this, method, model, options);
    }
});

var task = new Task();
task.fetch();  // এই সময় custom sync মেথড কাজ করবে

4. Authentication এবং Authorization

BackboneJS মডেল এবং কলেকশনের সাথে সার্ভার সাইড ইন্টারঅ্যাকশন করতে হলে প্রায়শই Authentication (যেমন JWT token) এবং Authorization (যেমন API key) প্রয়োজন হয়। আপনি HTTP headers ব্যবহার করে টোকেন বা কুকি যোগ করতে পারেন যাতে সার্ভারের সাথে নিরাপদ ইন্টারঅ্যাকশন করা যায়।

Authentication Header Example

var Task = Backbone.Model.extend({
    urlRoot: '/api/tasks',

    // Authentication Header যোগ করা
    sync: function(method, model, options) {
        options.beforeSend = function(xhr) {
            xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('authToken'));
        };
        return Backbone.sync.call(this, method, model, options);
    }
});

var task = new Task({ id: 1 });
task.fetch();  // Authorization header সহ GET রিকোয়েস্ট হবে

5. Error Handling

আপনি যখন Model বা Collection এর মাধ্যমে সার্ভার সাইড ইন্টারঅ্যাকশন করেন, তখন এটি সম্ভবত ত্রুটি ঘটতে পারে। আপনি error callback ব্যবহার করে সার্ভারের রেসপন্স ত্রুটি (error) পরিচালনা করতে পারেন।

Error Handling Example

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

var task = new Task({ id: 1 });
task.fetch({
    success: function(model, response) {
        console.log('Task fetched successfully:', model.toJSON());
    },
    error: function(model, response) {
        console.log('Error fetching task:', response.statusText);
    }
});

সারাংশ

BackboneJS এর Model এবং Collection এর মাধ্যমে server-side interaction সহজভাবে করা যায়। আপনি AJAX রিকোয়েস্ট ব্যবহার করে সার্ভার থেকে ডেটা ফেচ, সেভ, আপডেট এবং মুছতে পারেন। BackboneJS sync মেথড স্বয়ংক্রিয়ভাবে সার্ভার রিকোয়েস্টগুলি পরিচালনা করে এবং কাস্টম সার্ভার ইন্টারঅ্যাকশন তৈরির জন্য আপনি নিজের custom sync মেথডও তৈরি করতে পারেন।

এছাড়া, আপনি Authentication এবং Authorization হ্যান্ডলিং, এবং error handling এর মাধ্যমে সিকিউরড এবং রিলায়েবল সার্ভার সাইড ইন্টারঅ্যাকশন করতে পারেন।

Content added By

BackboneJS তে AJAX requests এবং data fetching অ্যাপ্লিকেশনের মডেল বা সংগ্রহ (Collection) থেকে সার্ভারের সাথে যোগাযোগ স্থাপন করতে ব্যবহৃত হয়। এই ফিচারটি আপনার অ্যাপ্লিকেশনকে ডাইনামিক ডেটা লোড এবং সংরক্ষণ করতে সহায়তা করে, যা SPA (Single Page Application) তৈরিতে অত্যন্ত গুরুত্বপূর্ণ।

BackboneJS এর মাধ্যমে Model এবং CollectionAJAX requests ব্যবহার করা সহজ এবং এটি ডেটা ফেচ, সেভ এবং ডিলিটের জন্য কার্যকর উপায় প্রদান করে।


BackboneJS Model এবং Collection এ AJAX ব্যবহার

BackboneJS তে, Model এবং Collection উভয়েই fetch(), save(), destroy() এর মতো AJAX মেথড সরবরাহ করে, যা সার্ভারের সাথে ইন্টারঅ্যাকশন করার জন্য ব্যবহার করা হয়।

  • fetch(): সার্ভার থেকে ডেটা লোড করার জন্য ব্যবহৃত হয়।
  • save(): নতুন বা বিদ্যমান ডেটা সার্ভারে সেভ করার জন্য ব্যবহৃত হয়।
  • destroy(): সার্ভার থেকে ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

1. Backbone Model এ AJAX Request (Data Fetching)

BackboneJS এ Model থেকে ডেটা ফেচ করার জন্য fetch() মেথড ব্যবহার করা হয়। এটি সরাসরি সার্ভার থেকে ডেটা লোড করে এবং ডেটা মডেল এ সেট করে।

উদাহরণ:

// Backbone Model তৈরি করা
var Book = Backbone.Model.extend({
    urlRoot: '/api/books'  // সার্ভারের API URL
});

// নতুন Book মডেল তৈরি করা
var myBook = new Book({ id: 1 });

// ডেটা ফেচ করা
myBook.fetch({
    success: function(model, response) {
        console.log('Data fetched successfully:', response);
    },
    error: function(model, error) {
        console.log('Error fetching data:', error);
    }
});

এখানে, myBook.fetch() মেথড সার্ভার থেকে Book মডেল এর ডেটা ফেচ করবে এবং যদি ফেচ সফল হয়, তাহলে success কলে কলব্যাক ফাংশন চলবে। অন্যদিকে, যদি কোনো ত্রুটি হয়, তবে error কলে কলব্যাক ফাংশন চলবে।


2. Backbone Collection এ AJAX Request (Data Fetching)

Collectionfetch() মেথড ব্যবহার করে আপনি সার্ভার থেকে একটি বা একাধিক Model লোড করতে পারেন। Collection সার্ভার থেকে ডেটা ফেচ করলে তা সব Model এ রূপান্তরিত হয়ে Collection এ যোগ হয়ে যায়।

উদাহরণ:

// Backbone Model তৈরি করা
var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown Title',
        author: 'Unknown Author'
    }
});

// Backbone Collection তৈরি করা
var BookCollection = Backbone.Collection.extend({
    model: Book,  // Collection এ Book মডেল থাকবে
    url: '/api/books'  // সার্ভারের API URL
});

// নতুন Collection তৈরি করা
var books = new BookCollection();

// Collection থেকে ডেটা ফেচ করা
books.fetch({
    success: function(collection, response) {
        console.log('Books fetched successfully:', collection);
    },
    error: function(collection, error) {
        console.log('Error fetching books:', error);
    }
});

এখানে, books.fetch() মেথড ব্যবহার করে BookCollection থেকে ডেটা ফেচ করা হচ্ছে। যদি সার্ভার থেকে ডেটা সফলভাবে আসে, তাহলে সেই ডেটা Collection এ যোগ হয়ে যাবে।


3. Backbone Model এ Data Saving (Save)

BackboneJS এ, save() মেথড ব্যবহার করে আপনি মডেল ডেটা সার্ভারে সেভ করতে পারেন। এটি একটি নতুন মডেল তৈরি করে অথবা বিদ্যমান মডেলকে আপডেট করে।

উদাহরণ:

// Backbone Model তৈরি করা
var Book = Backbone.Model.extend({
    urlRoot: '/api/books'  // সার্ভারের API URL
});

// নতুন Book মডেল তৈরি করা
var newBook = new Book({
    title: 'Learning BackboneJS',
    author: 'John Doe'
});

// মডেলটি সার্ভারে সেভ করা
newBook.save(null, {
    success: function(model, response) {
        console.log('Book saved successfully:', model);
    },
    error: function(model, error) {
        console.log('Error saving book:', error);
    }
});

এখানে, newBook.save() মেথড সার্ভারে ডেটা সেভ করবে। এটি যদি সফল হয়, তাহলে success কলে কলব্যাক ফাংশন চলবে এবং যদি কোনো ত্রুটি ঘটে, তাহলে error কলে কলব্যাক ফাংশন ট্রিগার হবে।


4. Backbone Model এ Data Deleting (Destroy)

BackboneJS এ, destroy() মেথড ব্যবহার করে আপনি মডেল বা ডেটা সার্ভার থেকে মুছে ফেলতে পারেন। এটি সার্ভার থেকে ডেটা ডিলিট করার জন্য ব্যবহৃত হয়।

উদাহরণ:

// Backbone Model তৈরি করা
var Book = Backbone.Model.extend({
    urlRoot: '/api/books'  // সার্ভারের API URL
});

// নতুন Book মডেল তৈরি করা
var bookToDelete = new Book({ id: 1 });

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

এখানে, bookToDelete.destroy() মেথড সার্ভার থেকে ডেটা ডিলিট করবে এবং সাফল্য বা ত্রুটি অনুযায়ী কলব্যাক ফাংশন চলবে।


5. BackboneJS AJAX Request কনফিগারেশন

BackboneJS এর fetch(), save(), এবং destroy() মেথডে options অবজেক্ট ব্যবহার করে আপনি AJAX রিকোয়েস্ট কনফিগার করতে পারেন। এর মাধ্যমে আপনি যেমন, হেডার, টাইমআউট, বা অন্য কোনো কাস্টম সেটিংস প্রদান করতে পারেন।

উদাহরণ: Custom Headers

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

myBook.fetch({
    headers: {
        'Authorization': 'Bearer your-token-here'
    },
    success: function(model, response) {
        console.log('Data fetched with custom headers:', response);
    },
    error: function(model, error) {
        console.log('Error fetching data with custom headers:', error);
    }
});

এখানে, Authorization হেডারটি ব্যবহার করা হয়েছে AJAX রিকোয়েস্টে।


সারাংশ

BackboneJS এ AJAX requests এবং data fetching খুবই গুরুত্বপূর্ণ ফিচার, যা অ্যাপ্লিকেশনের ডাইনামিক ডেটা লোড এবং সংরক্ষণের জন্য ব্যবহৃত হয়। BackboneJS এর Model এবং Collection উভয়ে fetch(), save(), এবং destroy() মেথডের মাধ্যমে সার্ভারের সাথে ডেটা ইন্টারঅ্যাকশন করতে সক্ষম। এই মেথডগুলো অ্যাসিঙ্ক্রোনাসভাবে কাজ করে এবং আপনার অ্যাপ্লিকেশনকে ডেটা ফেচ, সেভ, এবং ডিলিট করার সুবিধা প্রদান করে।

BackboneJS তে AJAX রিকোয়েস্ট কনফিগারেশন যেমন কাস্টম হেডার, টাইমআউট ইত্যাদি দিয়ে আরো উন্নত ইন্টারঅ্যাকশন করা সম্ভব।

Content added By

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...