উপরের-ভাঁজ বিষয়বস্তুতে রেন্ডার-ব্লকিং জাভাস্ক্রিপ্ট এবং সিএসএস নির্মূল করুন


30

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

আমার সাইটের কর্মক্ষমতা এবং সিএসএস এবং জেএস ফাইলগুলির সাথে ডিল করার জন্য আমি অ্যাড্যাগ মডিউলটি ব্যবহার করছি ।

গুগলের পেজস্পিড পরীক্ষা চালানোর সময় আমি "ত্রুটি ঠিক করা" হিসাবে নিম্নলিখিত ত্রুটিটি পাচ্ছি:

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

গুগল সরবরাহ করে এমন তথ্য:

আমি কি অ্যাডাগাগ মডিউল বা ড্রুপাল কোর এর সেটিংস পরিবর্তন করতে এবং এই সমস্যাটি সমাধান করতে পারি?

এই লক্ষ্য অর্জনের অন্য উপায় আছে কি?

আপডেট - মাইকাইটাউন 2 উত্তর অনুসারে পরিবর্তনগুলি প্রয়োগ করার পরে আমি গুগলের পেজস্পিড পরীক্ষায় নিম্নলিখিত বার্তাটি পেয়েছি:

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


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

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

@ টেনকেন কিভাবে এটি খুব বিস্তৃত? তিনি সিএসএস এবং জেএসকে একটি রেন্ডার-ব্লকিংয়ের সাথে যুক্ত করেছেন এবং সেগুলি তিনি একটি অবরোধহীন পথে চান ocking এই উপায়গুলি খুব বেশি ব্যাখ্যা করা হয়েছে ( গুগল দ্বারা উদাহরণস্বরূপ, যেমন ওপেন গুগল পেজস্পিডের পুনঃসংশোধনকে বোঝায়)। ওপি জিজ্ঞাসা করা সমস্যাটির সাথে আপনার মন্তব্যের কোনও যোগসূত্র নেই।
Mołot

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

@ টিটেনেন আমি আমার প্রশ্ন আপডেট করেছি এবং মডিউলগুলি সম্পর্কে আরও তথ্য দিয়েছি - আশা করি এটি আপনাকে কোন সিএসএস এবং জেএস ব্যবহার করে তা বুঝতে সহায়তা করবে।
EB84

উত্তর:


42

README কিভাবে এই ব্যবহার বর্তমান করতে হবে সেই বিষয়ে একটি গাইড আছে 7.x-2.31 + + AdvAgg সংস্করণউচ্চ কার্যকারিতা গোষ্ঠীতে এই উইকি পৃষ্ঠাটিও দেখুন । বেশিরভাগ সাইটগুলি https://developers.google.com/speed/pagespeed/insights/ এ একটি নিখুঁত 100/100 স্কোর অর্জন করতে পারে । নীচে অ্যাডএজিজি-র নতুন করে ইনস্টল করার জন্য এটি কীভাবে অর্জন করা যায় তার দিকনির্দেশ।

পরিবর্তনটি আপনার সাইটে গোলযোগ না পেয়েছে তা নিশ্চিত করার জন্য প্রতিটি বিভাগের পরে সাইটটি পরীক্ষা করে দেখুন। অ্যাডএএজিজি মডিফায়ারের অধীনে পরিবর্তনগুলি সাধারণত সবচেয়ে সমস্যাযুক্ত তবে তারা সবচেয়ে বড় উন্নতি করে।

উন্নত সিএসএস / জেএস সমষ্টি

যাও admin/config/development/performance/advagg

  • "প্রস্তাবিত (অনুকূলিত) সেটিংস ব্যবহার করুন" নির্বাচন করুন
অ্যাডএজিজি জাভাস্ক্রিপ্ট সঙ্কলন

সক্ষম না হলে অ্যাডএএজিজি কমপ্রেস জাভাস্ক্রিপ্ট ইনস্টল করুন এবং এতে যান admin/config/development/performance/advagg/js-compress

  • যদি পাওয়া যায় তবে জেএসমিন নির্বাচন করুন; অন্যথায় জেএসমিন + নির্বাচন করুন
  • স্ট্রিপ স্ট্রিপ (ছোট ফাইলগুলি) নির্বাচন করুন
  • এই ফাইলগুলি প্রক্রিয়া করতে ব্যাচ সংক্ষেপে লিঙ্কটি ক্লিক করুন
অ্যাডএজিজি এসিঙ্ক ফন্ট লোডার

সক্ষম না হলে অ্যাডএএজিজি অ্যাসিঙ্ক ফন্ট লোডার ইনস্টল করুন এবং এতে যান admin/config/development/performance/advagg/font

  • সামগ্রিক অন্তর্ভুক্ত স্থানীয় ফাইল নির্বাচন করুন (সংস্করণ: XXX)। যদি এই বিকল্পটি উপলভ্য না হয় তবে কীভাবে এটি ইনস্টল করতে হবে তার বিকল্পগুলির নীচের দিকনির্দেশগুলি অনুসরণ করুন।
  • "লোকালস্টোরেজ ব্যবহার করুন যাতে স্টাইল না করা পাঠ্যের ফ্ল্যাশ (FOUT) কেবল একবার হয়" "
  • "একটি কুকি সেট করুন যাতে আনস্টাইলযুক্ত পাঠ্যের ফ্ল্যাশ (FOUT) কেবল একবার হয়" "
অ্যাডএজিজি বান্ডিলার

সক্ষম না হলে অ্যাডএগজি বান্ডিলার ইনস্টল করুন এবং এতে যান admin/config/development/performance/advagg/bundler

HTTP / 2.0 সেটিংস

  • "প্রতি পৃষ্ঠায় সিএসএস বান্ডিলের লক্ষ্য সংখ্যা" এর অধীনে 25 নির্বাচন করুন
  • "প্রতি পৃষ্ঠায় জেএস বান্ডিলের টার্গেট সংখ্যা" এর অধীনে 25 নির্বাচন করুন
  • "দলবদ্ধকরণ যুক্তি" এর অধীনে "ফাইলের আকার" নির্বাচন করুন

HTTP / 1.1 সেটিংস (ডিফল্ট)

  • "প্রতি পৃষ্ঠায় সিএসএস বান্ডিলের লক্ষ্য সংখ্যা" এর অধীনে 2 নির্বাচন করুন
  • "প্রতি পৃষ্ঠায় জেএস বান্ডিলের টার্গেট সংখ্যা" এর অধীনে 5 নির্বাচন করুন
  • "দলবদ্ধকরণ যুক্তি" এর অধীনে "ফাইলের আকার" নির্বাচন করুন

25 এবং 5 টি বান্ডিলগুলি ব্রাউজারের ক্যাচিংয়ের সাথে করতে হবে। আরও ফাইলগুলি ব্রাউজারের ক্যাশে থাকা কম্বো থাকার একটি আরও ভাল সুযোগের সমান, তবে আরও ফাইলগুলির অর্থ HTTP 1.1 তে আরও সংযোগ স্থাপন এবং খোলা থাকে। সিএসএসের জন্য 2 ব্যবহার করুন কারণ এই নম্বরটি কোনও নতুন সংযোগের জন্য অপেক্ষা করে না; জেএস 5 হওয়ায় বেশিরভাগ ব্রাউজারের একযোগে সংযোগের সীমা 6 থাকে bu বান্ডিলগুলির জন্য এই সংখ্যাটি অনেক পরীক্ষার পরে নেওয়া হয়েছিল। এইচটিটিপি ২.০ এ একটি স্ট্রিমিং সংযোগ রয়েছে এবং একাধিক সিএসএস এবং জেএস ফাইলের জন্য জরিমানা প্রায় বিদ্যমান নেই; সুতরাং ব্রাউজার ক্যাশের জন্য অনুকূলিতাই সেরা পছন্দ; এইচটিটিপি / ২.০ পরিবেশন করার সময় 25 টি সিএসএস এবং জেএসের জন্য ব্যবহার করা উচিত।

অ্যাডএজিজি রিলোক্ট

সক্ষম না হলে অ্যাডএজিজি পুনঃস্থাপন ইনস্টল করুন এবং এতে যান admin/config/development/performance/advagg/relocate

  • "প্রস্তাবিত (অনুকূলিত) সেটিংস ব্যবহার করুন" নির্বাচন করুন
অ্যাডএজিজি মডিফায়ার

সক্ষম না হলে অ্যাডএগজি মডিফায়ার ইনস্টল করুন এবং এতে যান admin/config/development/performance/advagg/mod

  • "প্রস্তাবিত (অনুকূলিত) সেটিংস ব্যবহার করুন" নির্বাচন করুন
সমালোচনামূলক সিএসএস ফাইল তৈরি করা হচ্ছে

Https://www.sitelocity.com/critical-path-css-generator এ যান এবং সমালোচনামূলক CSS এর জন্য প্রয়োজনীয় যতগুলি ল্যান্ডিং পৃষ্ঠাগুলি ইনপুট করুন; শীর্ষ 10 টি সাধারণত একটি ভাল শুরু। আপনার যদি গুগল অ্যানালিটিকস থাকে তবে এটি আপনাকে দেখায় যে কীভাবে আপনার শীর্ষস্থানীয় পৃষ্ঠাগুলি https://developers.google.com/analytics/devguides/reporting/core/v3/common-quishes#top-landing-pages বা পাইউইক https- র জন্য পাবেন : //piwik.org/faq/how-to/faq_160/ । আপনার সাইটের হোমপেজটি দিয়ে কোন পৃষ্ঠাটি শুরু করতে হবে তা যদি আপনি না জানেন। সিএসএস জেনারেট করতে আপনি আমাদের এটিও করতে পারেন https://chrome.google.com/webstore/detail/critical-style-snapshot/gkoeffcejdhhojognlonafnijfkcepob?hl=en

নীচে ফাইলের নাম এবং পথগুলি "বুটস্ট্র্যাপ" থিমের জন্য; তারা সব দিয়ে শুরু sites/all/themes/bootstrap/critical-css/; আপনার থিম critical-css/ডিরেক্টরি তৈরি করুন । পরবর্তী ডিরেক্টরি ব্যবহারকারীর উপর ভিত্তি করে; anonymous/, all/বা authenticated/ব্যবহার করা যেতে পারে।

পরবর্তী ডিরেক্টরি হতে পারে urls/বা type/। তাকানো urls/; সামনের পৃষ্ঠার জন্য সামনের অংশটি একটি বিশেষ কেস, অন্য সমস্ত পাথ কারেন্ট_পথ () ডিরেক্টরি হিসাবে ব্যবহার করে এবং ফাইলের নাম শেষে .cssযুক্ত হয়; Https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.x দেখুন

এ খুঁজছি type/এই নোডের ধরনের জন্য একটি বিশেষ ক্ষেত্রে দেখা যায়। মেশিনের নাম ব্যবহার করুন .cssএবং শেষ পর্যন্ত যুক্ত করুন। এই ধরণের যে কোনও নোডের পরে এই সমালোচনামূলক CSS ফাইলটি প্রয়োগ করা হবে এবং ইনলাইন করা থাকবে। এটি কীভাবে কাজ করে তা নীচে কয়েকটি উদাহরণ দেওয়া হল।

"সম্মুখ" পৃষ্ঠার জন্য বৈধ উদাহরণ ফাইলের অবস্থান: sites/all/themes/bootstrap/critical-css/anonymous/urls/front.css

"নোড / 1" বর্তমান_পথ () পৃষ্ঠার জন্য বৈধ উদাহরণ ফাইলের অবস্থান: sites/all/themes/bootstrap/critical-css/anonymous/urls/node/1.css

"পৃষ্ঠা" নোড প্রকারের জন্য বৈধ উদাহরণ ফাইলের অবস্থানগুলি: sites/all/themes/bootstrap/critical-css/anonymous/type/page.css

আপনি যদি এই সিএসএস ফাইলগুলি তৈরি করতে কোনও ধরণের স্বয়ংক্রিয় পদ্ধতি চান তবে ফোরকিচেনগুলি কীভাবে সেট আপ করবেন সে সম্পর্কে একটি দুর্দান্ত নিবন্ধ রয়েছে: https://fourword.fourkitchens.com/article/use-grunt-and-advagg-inline-critical-css -drupal-7-থিম


এটি অ্যাডএজিজি কীভাবে ব্যবহার করতে হয় তার একটি দুর্দান্ত ওভারভিউ! ধন্যবাদ। হয়তো এই লেখাটি আপনার প্রকল্প পৃষ্ঠার জন্য একটি লিঙ্কযুক্ত "ডকুমেন্টেশন" পৃষ্ঠার শুরু হতে পারে :)
টেনেন

ইতিমধ্যে যে :) করেনি drupal.org/node/2189523#comment-8594829
mikeytown2

@ মাইকাইটাউন 2 দুর্দান্ত উত্তরের জন্য ধন্যবাদ। আমি সমস্ত পরিবর্তনগুলি প্রয়োগ করেছি এবং প্রশ্নটি আপডেট করছি update আমি কিছুটা বেশি স্কোর পেয়েছি - ধন্যবাদ!
EB84

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

তথ্য সরবরাহ করার জন্য ধন্যবাদ। আপনি যদি পৃষ্ঠায় কম সিএসএস ফাইল চান তবে অ্যাডগ্যাগ / বান্ডিলারে যান এবং CSS মানটি 4 থেকে নীচে 1 এ পরিবর্তন করুন। এটি আপনাকে আরও ভাল স্কোর দেবে তবে এটি করার বিষয়ে উপরের মতামতগুলি মনে রাখবেন। দেখে মনে হচ্ছে অ্যাডাপটিভ থিমটি ব্রুপাল কন্ডিশনাল জেএস যুক্ত করতে drupal_add_html_head () ব্যবহার করে, আমাকে যা যা ঘটছে তা যাচাই করতে হবে; মানে 1 টিরও বেশি থিমের drupal.org/node/2217451 প্রয়োজন । এছাড়াও আমি রেন্ডার ব্লক CSS মোকাবেলার এই সমস্যা তৈরি করেছি drupal.org/node/2223267
mikeytown2

2

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

খুব সক্রিয় নিউজ সাইটে 95 টি অর্জনের জন্য আমি কিছু কাজ করেছি , যেটা আমি লিখেছিলাম সময়কালের জন্য, এনটাইমসের চেয়ে ভাল রান (এখন এটি হয় না):

  • [স্ক্রিপ্টগুলি ব্লক করা] তৃতীয় পক্ষের স্ক্রিপ্টগুলির বিলম্ব সম্পাদন যেমন শেয়ারটিজ, ফেসবুক উইজেটস, গুগল প্লাস ইত্যাদি পৃষ্ঠার সম্পূর্ণরূপে রেন্ডার হয়ে গেলেই চালানো হবে। এই স্ক্রিপ্টগুলি ধরার জন্য html.tpl.php এর আউটপুটে এর জন্য কিছু সাধারণ স্ট্রিং প্রতিস্থাপনের প্রয়োজন ছিল এবং পরবর্তী সম্পাদনের জন্য তাদের সারি করুন।
  • [স্ক্রিপ্টগুলি অবরুদ্ধ করা] প্রথম পৃষ্ঠার লোডের পরে চলার জন্য কাতারে একটি জাভাস্ক্রিপ্ট ভেরিয়েবলে html.tpl.php (json_encode সহ) এর $ স্ক্রিপ্ট ভেরিয়েবল সংরক্ষণ করুন। এটি অপ্রাকৃত, তবে প্রয়োজনীয়। কিছু ব্রাউজার নির্দিষ্ট সমস্যার সমাধান করতে হয়েছিল।
  • [সিএসএস ব্লক করা] কিথ ক্লার্কের কৌশলটির অনুরূপ কিছু কার্যকর করা হয়েছে , তবে rel = "উপসাগর" দিয়ে with এটি FOUC সমাধানের প্রয়োজনীয়তার পরিচয় দেয় ।
  • [সংক্ষিপ্তকরণ এবং সংক্ষেপণ] একটি বিতরণ সার্ভারে বাহ্যিক সংক্ষেপণ এবং সংক্ষিপ্তকরণের যেখানে আমি এই নিয়মগুলি কাটিয়ে উঠতে ইমেজমেজিক, ইউই-সংক্ষেপক, পিএনজিপিটিম এবং আরও বেশি জিনিস ব্যবহার করতে পারি, ড্রুপাল ইনস্টলটিকে একটি অযৌক্তিক জগতে পরিণত না করে into
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.