কেন আমরা গতিশীল (সার্ভার-সাইড উত্পন্ন) সিএসএস ব্যবহার করব না?


15

সার্ভার-সাইড উত্পাদিত এইচটিএমএল যেমন তুচ্ছ (এবং এটিএএএএএক্স এর আগে ডায়নামিক ওয়েবপৃষ্ঠাগুলি তৈরি করার একমাত্র উপায় ছিল), সার্ভার-সাইড দ্বারা উত্পন্ন সিএসএস নয়। আসলে, আমি এটি কখনও দেখিনি। সিএসএস সংকলক রয়েছে, তবে তারা সিএসএস ফাইল উত্পন্ন করে যা স্থির হিসাবে ব্যবহার করা যেতে পারে।

প্রযুক্তিগতভাবে, এর জন্য কোনও বিশেষ গ্রন্থাগার প্রয়োজন নেই, এইচটিএমএল স্টাইল ট্যাগের স্থির সিএসএস ফাইলের পরিবর্তে পিএইচপি (/ এএসপি / যাই হোক না কেন) টেম্প্লেটার স্ক্রিপ্টের উল্লেখ করা উচিত এবং স্ক্রিপ্টটিতে CSS সামগ্রী-প্রকারের শিরোনাম পাঠানো উচিত - এগুলি সবই।

এটি কি ক্যাশে সমস্যা আছে? আমি তাই মনে করি না. স্ক্রিপ্টটিতে নো-ক্যাশে ইত্যাদি শিরোনাম প্রেরণ করা উচিত । এটা ডিজাইনারদের জন্য সমস্যা? না, তাদের CSS টেম্পলেটটি সম্পাদনা করা উচিত (তারা HTML টেমপ্লেট সম্পাদনা করার সাথে সাথে)

কেন আমরা গতিশীল সিএসএস জেনারেটর ব্যবহার করি না? বা যদি কিছু থাকে তবে দয়া করে আমাকে জানান।


3
কম, সাস, এসসিএসএস, ইত্যাদি
রাইন হেনরিচস

উত্তর:


13

সিএসএস খুব কমই গতিশীলভাবে উত্পন্ন হওয়ার কারণ (এটি জাভাস্ক্রিপ্টের ক্ষেত্রেও সত্য) কারণ তারা ক্যাশিংয়ের জন্য ভাল প্রার্থী। সিএসএস আপনার পৃষ্ঠাগুলি স্টাইল করার একটি খুব নমনীয় উপায়, ক্লাসগুলির সঠিক সংমিশ্রণের সাথে, আপনি সিএসএসে কোনও শর্ত না রেখেই সমস্ত ধরণের ইঙ্গিত অনুসারে স্টাইলযুক্ত আপনার বিভিন্ন পৃষ্ঠার বিভিন্ন অংশের সমস্ত পেতে পারেন নিজেই এই পৃষ্ঠাভিউতে উপস্থিত হতে যা ঘটে তা নিজেই

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

এই অনুশীলনটি এতটাই সাধারণ, যে অনেক ব্রাউজার কেবলমাত্র CSS স্ট্যাটিক বলে ধরে নেয়; এবং তারা ইতিমধ্যে সিএসএস ডাউনলোড করতে খুব নারাজ; এমনকি ব্যবহারকারীরা পৃষ্ঠাটি পুনরায় লোড করলেও। এই বিশেষ চিকিত্সা কেবল সিএসএসের জন্য প্রযোজ্য; অন্যান্য সামগ্রীর প্রকার প্রত্যাশার সাথে পুনরায় লোড হবে।


7

আমি বিশ্বাস করি যে আপনার অনুমানটি ভুল: আমার শেষ প্রকল্পে অ্যাপ্লিকেশনটি অজ্যাক্স দ্বারা লোড করা সার্ভার-উত্পাদিত সিএসএস ব্যবহার করছিল (কারণ, আপনি যে মানচিত্রটির দিকে তাকিয়েছিলেন তার অবস্থানের উপর ভিত্তি করে পৃষ্ঠাটি সম্পূর্ণ ভিন্ন শৈলীতে ব্র্যান্ড করা হয়েছিল)।

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


আপনার বক্তব্য দরকারী তবে আমি মনে করি এটি কেস অনুসারে বিভিন্ন ক্ষেত্রে, তাই ভাল_ কম্পিউটারের বিবরণটি বিশ্বব্যাপী সংক্ষিপ্ত এবং দরকারী।
কিউমাস্টার

7

আসলে, গতিশীল সিএসএসের জন্য ব্যবহারের কেস রয়েছে। আমি তিনটি বিভিন্ন ধরণের সাথে কাজ করেছি:

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

  2. ইউআরএল পুনর্লিখন - আপনার বক্তব্যের প্রমাণ হিসাবে ঠিক নেই যে কোনও ক্যাশে সমস্যা নেই, আমি পিএইচপি ব্যবহার করেছি দীর্ঘ সময় ধরে সঠিক ক্যাশে শিরোনাম সহ সিএসএস ফাইল হিসাবে স্ক্রিপ্টগুলি পরিবেশন করতে। আমি মূলত এটি লাইব্রেরি থেকে সিএসএস ফাইলগুলি সরবরাহ করার জন্য করি যা ওয়েব মূলের অভ্যন্তরে নেই।

  3. গতিশীল প্রতিবেদন - একটি প্রকল্পে আমি কাজ করেছি, আমাদের সিস্টেমে সমস্ত ধরণের ডেটার জন্য একটি প্রতিবেদন নির্মাতা ছিল। আমরা আউটপুট করি ( styleট্যাগগুলির অভ্যন্তরে যেমন আপনি উল্লেখ করেছেন) গতিশীল শৈলীর নিয়ম মূলত রঙগুলির জন্য যা ব্যবহারকারীরা রিপোর্টার তৈরির মাধ্যমে নির্বাচিত হয়েছিল।

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


তবে কেন এটি বেশি সাধারণ হয় না? আমি মনে করি এর একটি প্রধান কারণ আছে - CSS সত্যই আউটপুট সামগ্রী তৈরি করে না। সুতরাং কেবল একটি মহান প্রয়োজন নেই। ব্যবহারকারীর দ্বারা নির্বাচিত গতিশীল রঙগুলি আউটপুট দেওয়ার বাইরে, যেমনটি আমরা করেছি, অথবা সম্ভবত ব্যাকগ্রাউন্ড-চিত্রগুলি (যদিও চিত্রটি বিষয়বস্তু হয় , তবে এটি সম্ভবত imgট্যাগটি ব্যবহার করার পক্ষে একটি ভাল যুক্তি ), আপনাকে গতিশীলভাবে আর কী করতে হবে?

বেশিরভাগ গতিশীল শৈলীর পরিবর্তনগুলি বিভিন্ন স্ট্যাটিক সিএসএস নথিগুলিকে উল্লেখ করে উত্পাদিত হতে পারে ।

সুতরাং এটি অবশ্যই সম্ভব, যেমনটি আপনি ভেবেছিলেন, তবে এটি করার খুব বেশি কারণ নেই।


4

গতিশীলভাবে সিএসএস লোড করার জন্য দু'টি আলাদা দিক রয়েছে ...

  1. সার্ভারে গতিশীলভাবে সিএসএস ফাইল তৈরি করা হচ্ছে

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

  2. একটি জেএস স্ক্রিপ্ট লোডার মাধ্যমে ডিএসএস ফাইলের চাহিদা অনুযায়ী লোড হচ্ছে

    যদি আপনি গতিশীলভাবে DOM এর একটি বড় অংশ তৈরি করেন এবং প্রয়োজনীয় স্টাইলগুলি লোড করেন তবে এটি কার্যকর হতে পারে। কিন্তু LABjs এর লেখক হিসাবে বলেছেন ...

    একটি গতিশীল লোড সিএসএস ফাইল লোডিং শেষ হয়েছে কিনা তা নির্ধারণ করা আসলে ক্রস ব্রাউজারটি করা বেশ জটিল এবং চ্যালেঞ্জিং। "লোড" ইভেন্টগুলি প্রত্যাশার / প্রত্যাশার মতো ঘটবে না। সুতরাং এই জাতীয় সমর্থন যোগ করার ফলে LABjs একটি তুচ্ছ আকারের যুক্ত হবে would


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

1

এটি কি ক্যাশে সমস্যা আছে? আমি তাই মনে করি না. স্ক্রিপ্টটিতে নো-ক্যাশ ইত্যাদি প্রেরণ করা উচিত

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

এখন কি কারণ সম্ভবত হতে পারে?

আপনি যদি বিভিন্ন প্যারামিটারের উপর ভিত্তি করে কোনও স্টাইল পরিবর্তন করতে চান তবে আপনি একাধিক স্টাইলশিট রেখে এবং সঠিকটি ডাউনলোড করার জন্য এইচটিএমএল তৈরি করে তা করেন।


প্যারামিটারের উপর ভিত্তি করে বিভিন্ন স্টাইলশিট তৈরি করা নিয়ন্ত্রণহীন হয়ে উঠতে পারে যদি উদাহরণস্বরূপ, তিনটি রঙের সংমিশ্রণ, প্রতিটি প্রত্যেকে 256 এর প্যালেট থেকে নির্বাচিত হয় You এই সমস্তগুলি কভার করার জন্য আপনি 16 মিলিয়ন স্টাইলশিট রাখতে চান না, আপনি কি?
tmadmers

@ টেডামার্স: এর জন্য ইউস-কেস কী? এটি জাভাস্ক্রিপ্ট ব্যবহার করে আরও ভাল অর্জন করা হবে বলে মনে হচ্ছে।
pdr

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

1

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

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

হয়ত আপনি তাদের অরণ্যে দেখেছেন, তাদের চিনতে না পেরে। গতিশীল স্ক্রিপ্টগুলি প্রেরণকারী সার্ভারগুলি সাধারণত ইউআরএল পুনর্লিখন ব্যবহার করে যাতে স্ট্যাটিকালি পরিবেশন করা সামগ্রী থেকে URL আলাদা হয়ে যায়। এটি প্রয়োজনীয় কারণ কিছু ব্রাউজারগুলি নির্দিষ্ট পরিস্থিতিতে সঠিক এমআইএমআই টাইপ সনাক্তকরণের জন্য এক্সটেনশনের উপর নির্ভর করে আপনি প্রেরিত যে কোনও সামগ্রী-টাইপ শিরোনামকে উপেক্ষা (বা প্রত্যাখ্যান) করতে পারেন।

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


1

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

এটি দেখার আরেকটি উপায় হ'ল "অন্য কোনও ব্যক্তি সমস্ত বেদনাদায়ক ম্যানুয়াল কাজটি করছে, আসলেই আমার সমস্যা নয়, এগিয়ে চলছে" "

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.