জাভাস্ক্রিপ্ট কোড স্প্লিটিং: ডাইনামিক লোডিং এবং পারফরম্যান্স অপ্টিমাইজেশনের এক গভীর বিশ্লেষণ | MLOG | MLOG ); }

এই পরিস্থিতিতে, `HeavyModal`-এর জন্য কোড সার্ভার থেকে কেবল তখনই অনুরোধ করা হয় যখন ব্যবহারকারী প্রথমবার "Show Terms and Conditions" বোতামে ক্লিক করে।

৩. থার্ড-পার্টি লাইব্রেরি বিভক্ত করা (ভেন্ডর চাঙ্কস)

আপনার অ্যাপ্লিকেশনের কোড প্রায়শই `node_modules` থেকে থার্ড-পার্টি লাইব্রেরির উপর নির্ভর করে (যেমন, React, Lodash, D3.js, Moment.js)। এই লাইব্রেরিগুলি আপনার নিজের অ্যাপ্লিকেশন কোডের তুলনায় অনেক কম পরিবর্তিত হয়। সেগুলিকে একটি পৃথক "ভেন্ডর" চাঙ্কে বিভক্ত করে, আপনি দীর্ঘমেয়াদী ব্রাউজার ক্যাশিংয়ের সুবিধা নিতে পারেন।

যখন আপনি আপনার অ্যাপ্লিকেশন কোডে একটি পরিবর্তন স্থাপন করেন, তখন ব্যবহারকারীকে শুধুমাত্র ছোট, পরিবর্তিত অ্যাপ চাঙ্কটি ডাউনলোড করতে হয়। অনেক বড় ভেন্ডর চাঙ্কটি সরাসরি ব্রাউজারের ক্যাশে থেকে পরিবেশন করা যেতে পারে, যা পরবর্তী পৃষ্ঠা লোডগুলিকে বিদ্যুতের মতো দ্রুত করে তোলে।

ওয়েবপ্যাক (এর `SplitChunksPlugin` সহ) এবং ভিটের মতো আধুনিক বান্ডলারগুলি এই বিষয়ে অবিশ্বাস্যভাবে স্মার্ট। তারা প্রায়শই মডিউল ব্যবহার এবং আকারের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ভেন্ডর চাঙ্ক তৈরি করতে পারে, যার জন্য ন্যূনতম কনফিগারেশন প্রয়োজন।

ওয়েবপ্যাক `splitChunks` কনফিগারেশন উদাহরণ:


// webpack.config.js
module.exports = {
  // ... other configs
  optimization: {
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[/]node_modules[/]/,
          name: 'vendors',
          chunks: 'all',
        },
      },
    },
  },
};

পারফরম্যান্স অপ্টিমাইজেশনের সুফল: প্রভাব পরিমাপ করা

কোড স্প্লিটিং বাস্তবায়ন কেবল একটি তাত্ত্বিক অনুশীলন নয়; এটি বাস্তব, পরিমাপযোগ্য পারফরম্যান্স লাভ সরবরাহ করে যা সরাসরি ব্যবহারকারীর অভিজ্ঞতা এবং আপনার কোর ওয়েব ভাইটালস উন্নত করে।

উন্নত কৌশল এবং সেরা অনুশীলন

আপনি মূল বিষয়গুলি আয়ত্ত করার পরে, আপনি আরও উন্নত কৌশলগুলির সাথে আপনার লোডিং কৌশলকে আরও পরিমার্জন করতে পারেন।

প্রিফেচিং এবং প্রিলোডিং

ডাইনামিক লোডিং চমৎকার, কিন্তু ব্যবহারকারী যখন অ্যাকশনটি ট্রিগার করে তখন এটি একটি ছোট বিলম্ব ঘটায়, কারণ ব্রাউজারকে নতুন চাঙ্ক আনতে হয়। আমরা রিসোর্স হিন্ট ব্যবহার করে এটি প্রশমিত করতে পারি:

ওয়েবপ্যাকের মতো বান্ডলারগুলি আপনাকে "ম্যাজিক কমেন্টস" দিয়ে এটি সহজেই করতে দেয়:


// Prefetch the dashboard code when this module is evaluated
const DashboardPage = lazy(() => 
  import(/* webpackPrefetch: true */ './pages/DashboardPage')
);

বান্ডেল অ্যানালাইজার দিয়ে স্প্লিট পয়েন্ট শনাক্ত করা

আপনি কীভাবে জানবেন কী বিভক্ত করতে হবে? অনুমান করবেন না—বিশ্লেষণ করুন! `webpack-bundle-analyzer` বা `source-map-explorer`-এর মতো টুলগুলি আপনার বান্ডেলগুলির একটি ইন্টারেক্টিভ ট্রি-ম্যাপ ভিজ্যুয়ালাইজেশন তৈরি করে। এটি আপনাকে অবিলম্বে বৃহত্তম মডিউল এবং লাইব্রেরিগুলি শনাক্ত করতে দেয় যা বিভক্ত করার জন্য প্রধান প্রার্থী।

নেটওয়ার্ক ওয়াটারফল এড়ানো

ডাইনামিক ইম্পোর্টের চেইন তৈরি করার বিষয়ে সতর্ক থাকুন যেখানে একটি চাঙ্ক লোড হওয়ার পরে অন্যটির লোডিং ট্রিগার করতে হয়। যখনই সম্ভব, মোট লোড সময় কমানোর জন্য একাধিক প্রয়োজনীয় চাঙ্কের লোডিং সমান্তরালে ট্রিগার করুন।

উপসংহার: কোড স্প্লিটিং অপরিহার্য

সর্বোত্তম ওয়েব পারফরম্যান্সের সন্ধানে, কোড স্প্লিটিং একটি বিশেষ অপ্টিমাইজেশন থেকে যেকোনো গুরুত্বপূর্ণ ওয়েব অ্যাপ্লিকেশনের জন্য একটি স্ট্যান্ডার্ড, অপরিহার্য অনুশীলনে পরিণত হয়েছে। মনোলিথিক থেকে অন-ডিমান্ড লোডিং কৌশলে স্থানান্তরিত হয়ে, আপনি আপনার ব্যবহারকারীর সময়, ডেটা এবং ডিভাইস রিসোর্সকে সম্মান করেন।

এর সুবিধাগুলি স্পষ্ট এবং আকর্ষণীয়:

আধুনিক টুলিং এবং ফ্রেমওয়ার্ক সমর্থনের সাথে, রুট-ভিত্তিক এবং কম্পোনেন্ট-ভিত্তিক স্প্লিটিং বাস্তবায়ন করা আগের চেয়ে সহজ হয়েছে। এখনই কাজ করার সময়। আপনার বান্ডেল বিশ্লেষণ করুন, আপনার বৃহত্তম নির্ভরতা এবং আপনার সবচেয়ে কম ব্যবহৃত রুটগুলি শনাক্ত করুন এবং আপনার প্রথম স্প্লিট পয়েন্ট বাস্তবায়ন করুন। আপনার ব্যবহারকারীরা—এবং আপনার পারফরম্যান্স মেট্রিক্স—এর জন্য আপনাকে ধন্যবাদ জানাবে।