স্থানীয়ভাবে সিডিএন বনাম এক ফাইলের একাধিক ফাইল


93

আমার ওয়েবসাইটটি প্রায় 10 তৃতীয় পক্ষের জাভাস্ক্রিপ্ট লাইব্রেরি যেমন jQuery, jQuery UI, উপসর্গফ্রি, কয়েকটি jQuery প্লাগইন এবং আমার নিজের জাভাস্ক্রিপ্ট কোড ব্যবহার করে। বর্তমানে আমি সিডিএন এবং গুগল সিডিএন এবং ক্লাউডফ্লেয়ারের মতো বাহ্যিক গ্রন্থাগারগুলি টানছি। আমি ভাবছিলাম যে আরও ভাল পদ্ধতির কি:

  1. বহিঃস্থ গ্রন্থাগারগুলি সিডিএনগুলি থেকে টানছেন (যেমন আমি আজ করি)।
  2. একক জেএস এবং একটি সিএসএস ফাইলের সাথে সমস্ত ফাইলের সংমিশ্রণ এবং স্থানীয়ভাবে সেগুলি সঞ্চয় করা।

যে কোনও মতামত যতক্ষণ তাদের ব্যাখ্যা করা হয় ততক্ষণ স্বাগত। ধন্যবাদ :)

উত্তর:


139

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

এটি মাথায় রেখে, জনপ্রিয় সিডিএন থেকে তুলনামূলকভাবে বড় এবং জনপ্রিয় ফাইলটি টানাই পরম ইন্দ্রিয়কে বোঝায়। jQuery এবং আরও কম ডিগ্রীতে, jQuery UI এই বিলটি ফিট করে।

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

এইচটিএমএল 5 বয়লারপ্লেট এর জন্য জেনেরিক সমাধান সরবরাহের জন্য বেশ ভাল কাজ করে:

  1. মডার্নিজার স্থানীয়ভাবে স্থানীয় থেকে লোড করা হয়: এটি খুব ছোট এবং উদাহরণস্বরূপ থেকে অনেকটা পৃথক, সুতরাং এটি কোনও সিডিএন থেকে উত্স উত্সর্গ করার কোনও মানে হয় না এবং এটি ব্যবহারকারীকে আপনার থেকে এটি লোড করতে খুব বেশি ক্ষতি করে না সার্ভার এটি মাথায় রাখা হয়েছে কারণ সিএসএস এটি ব্যবহার করতে পারে, তাই আপনি শরীরের রেন্ডারগুলির আগে এর প্রভাবগুলি জানা উচিত। আপনার ভারী স্ক্রিপ্টগুলি লোড করার সময় এবং সম্পাদন করার সময় রেন্ডারিংকে ব্লক করা বন্ধ করতে, সমস্ত কিছু নীচে যায়।
  2. সিডিএন থেকে jQuery, যেহেতু প্রায় সকলেই এটি ব্যবহার করে এবং এটি বেশ ভারী। ব্যবহারকারীরা সম্ভবত আপনার সাইটটি দেখার আগেই এটি ইতিমধ্যে ক্যাশেড থাকবে, যা ক্ষেত্রে তারা তত্ক্ষণাত ক্যাশে থেকে লোড করবে load
  3. আপনার সমস্ত ছোট তৃতীয় পক্ষের নির্ভরতা এবং কোড স্নিপেটগুলি যা plugins.js আপনার নিজের সার্ভার থেকে লোড করা কোনও ফাইলে কনটেনেটেটিংয়ের খুব বেশি পরিবর্তন হওয়ার সম্ভাবনা নেই । এটি প্রথমবারের সাথে কোনও দূরবর্তী মেয়াদোত্তীর্ণ শিরোনামের সাথে ক্যাশে যাবে এবং পরবর্তী সময়ে দর্শনার্থীদের ক্যাশে থেকে লোড করা হবে।
  4. main.jsআপনার আবেদনের যুক্তিটি সপ্তাহ থেকে সপ্তাহে বা মাসে মাসে পরিবর্তিত হতে পারে এই বিষয়টি জন্য অ্যাকাউন্টটির নিকটবর্তী হওয়ার সাথে সাথে আপনার মূল কোডটি প্রবেশ করবে । এইভাবে আপনি যখন কোনও বাগ ফিক্স করেছেন বা নতুন কার্যকারিতা প্রবর্তন করেছেন যখন ব্যবহারকারী এখন থেকে পনেরো দিন পরিদর্শন করেন, এটি তাজা হয়ে উঠতে পারে যখন উপরের সমস্ত সামগ্রী ক্যাশে থেকে আনা যায়।

আপনার অন্যান্য বড় লাইব্রেরির জন্য, আপনার সেগুলি স্বতন্ত্রভাবে দেখার উচিত এবং আপনার নিজের জিজ্ঞাসা করা উচিত যে তাদের jQuery এর নেতৃত্ব অনুসরণ করা উচিত, আপনার নিজের সার্ভার থেকে পৃথকভাবে লোড করা উচিত, বা কনটেটেটেড হওয়া উচিত। আপনি কীভাবে এই সিদ্ধান্তগুলিতে আসতে পারেন তার একটি উদাহরণ:

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

তবে কোনও আবশ্যক নেই - আপনার মাইলেজটি বিভিন্ন হতে পারে।


4
খুব ভাল উত্তর। ব্রাউজার ক্যাশে আপনার জন্য কাজ করে দিন। সংযুক্ত ফাইলগুলি থেকে জনপ্রিয় গ্রন্থাগারগুলি আলাদা করার ধারণাটি আমি পছন্দ করি।
জন

4
খুব সহায়ক বিশ্লেষণ
ব্যবহারকারী

8
খুব ভাল উত্তর। এছাড়াও উল্লেখযোগ্য যে, সিডিএন ব্যবহারকারীদের "স্থানীয়" বা কমপক্ষে (ব্যবহারকারীর কাছে) সার্ভার থেকে ফাইলগুলি টানতে দেয়। সুতরাং যদি আপনার সার্ভারটি ইউরোপে থাকে, উদাহরণস্বরূপ, দক্ষিণ আমেরিকা বা রাশিয়ার ব্যবহারকারীরা এখনও ফাইলগুলি তুলনামূলকভাবে দ্রুত পাবেন।
এইচ.ওয়েલ્পার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.