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


15

আমি দৌড়াচ্ছি magento 1.9, এবং আমি RWD sliderহোম পেজে ম্যাজেন্টো 1.9 এর সাথে উপস্থিত ব্যবহার করছি ।

গুগল PageSpeedএটি পছন্দ করে না এবং বলেছেন:

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

এই জাভা স্ক্রিপ্ট ফাইলটির জন্য আমি কীভাবে এটি করতে পারি যা স্লাইডারটি কল করে:

http://www.MYDOMAIN/media/js/sdhfksjfhdsjvbskj8e4w.js

উত্তর:


14

আমি Magento-1.9.x এ রেন্ডার-ব্লক করা জাভাস্ক্রিপ্ট ইস্যুটি সরান সমাধান করুন:

<script src="filename.js"></script>
Replace with Following:  
<script src="filename.js" defer></script>
<script src="filename.js" async="async"></script>

অথবা

<action method="addJs"><script>prototype/prototype.js</script></action>  
Replace with Following:  
<action method="addJs"><script>prototype/prototype.js</script><params>defer</params></action>  
<action method="addJs"><script>prototype/prototype.js</script><params>async</params></action>

ইঙ্গিত: এটি বেস থিমে সনাক্ত করতে পারে

অ্যাপ্লিকেশন \ ডিজাইন \ সম্মুখভাগ \ বেস \ ডিফল্ট \ লেআউট \ পৃষ্ঠা.xML লাইন সম্পর্কে: 38,

আপনি যদি অ্যাপ্লিকেশন d ডিজাইন \ ফ্রন্টএন্ড \ বেস \ ডিফল্ট \ লেআউট \ page.xML হিসাবে rwd এর জন্য সক্রিয় থিমের পৃথক পথ ব্যবহার করেন


কোথায় যোগ করবেন? কোন ম্যাজেন্টো এক্সএমএল ফাইল?
স্টাইলজজ

@ স্টাইজ্জেড, হ্যাঁ এবং এছাড়াও শিরোলেখ / পাদচরণ ফাইল।
গুগলের

@ স্টায়জ এটি বেস থিম অ্যাপ্লিকেশন \ ডিজাইন \ ফ্রন্টএন্ড \ বেস \ ডিফল্ট \ লেআউট \ পেজ.এক্সএমএল লাইন সম্পর্কে সন্ধান করুন: 38, আপনি যদি অ্যাপ্লিকেশন \ ডিজাইন \ ফ্রন্টএন্ড \ বেস \ ডিফল্ট \ লেআউট \ পেজ.এক্সএমএল হিসাবে আরডব্লিউডের জন্য সক্রিয় থিমের পৃথক পাথ প্রাক্তন ব্যবহার করেন
ম্যাটিনিকট

1
আমি তোমাকে অনুসরণ করেছিলাম. এটি গুগল পৃষ্ঠার অন্তর্দৃষ্টিটিতে সমস্যাটি সমাধান করেছে তবে এটি গুগল ক্রোমে কনসোলে অনেক ত্রুটি দিচ্ছে
শোয়েব মির্জা

@ এমডিএসএইচবিমিরাজা তখন সমস্যাটি সমাধান করেনি
স্টিভি জি

5

"মোহন জিএস" দ্বারা বর্ণিত কৌশলটি এখানে কাজ করবে না।

জেএস পথের কারণে /media/js/মনে হয় তিনি জেএস মার্জ ব্যবহার করেন । এর অর্থ, সমস্ত জেএস ফাইলগুলি এক্সএমএল স্ট্যান্ডার্ড উপায়ে যুক্ত করা হয়েছে

  • <action method="addJs">...
  • <action method="addItem"><type>js</type>..

একটি বড় এক সাথে একীভূত করা হবে /media/js/<hash>.js

ম্যাজেন্টো কোর জেএস ফাইল যুক্ত করা হয়েছে

  • <action method="addJs"><script>prototype/prototype.js</script></action>

এইভাবে, খুব।

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

এই মুহুর্তে, কেবলমাত্র হেড জেএস ফাইলগুলি নীচে সরানো যথেষ্ট নয়? হেড জেএসের পরে এবং তার আগে আপনাকে সমস্ত ইনলাইন জেএস ঘোষণাগুলি স্থানান্তর করতে হবে</body> হবে।

সমস্ত / অনেক ক্ষেত্রেই টেমপ্লেটগুলি থেকে ইনলাইন জেএস পৃথক করা অসম্ভব কারণ তারা টেম্পলেট নির্দিষ্ট ভেরিয়েবল ব্যবহার করছে।

আপনি কেবলমাত্র চূড়ান্ত এইচটিএমএলকে বিশদকরণের মতো একটি সাধারণ পদ্ধতি ব্যবহার করতে পারেন এবং এই জিনিসগুলি একসাথে এবং সঠিক ক্রমে সরিয়ে নিতে পারেন।

তাই এক্সটেনশন পেজস্পিডে একবার দেখুন


আমি দুঃখিত - আমি এখনও কি করতে হবে তা বুঝতে পারছি না। আমার কোন ফাইলটি সম্পাদনা করা উচিত? আপনি কি বলছেন যে আমাদের এক্সএমএল ফাইলগুলি সম্পাদনা করা উচিত এবং জেএসকে অন্য একটি বিভাগে কল করা লাইনটি সরানো উচিত? আমি এক্সএমএল ফাইলটি সম্পাদনা করতে পারি, তবে আমি নিশ্চিত নই যে কোনটি, এবং কোথায় লাইনটি সরানো হবে যা জেএস স্ক্রিপ্ট বলে called আমাকে বুঝতে দাও.
স্টায়জজ

আমার উত্তরটি ব্যাখ্যা করা উচিত, আপনি জাভাস্ক্রিপ্ট এক্সএমএল কলগুলিকে অন্য কোনও বিভাগে স্থানান্তর করতে পারবেন না । এটি ত্রুটির দিকে পরিচালিত করবে। আপনি উল্লিখিত এক্সটেনশন চেষ্টা করতে পারেন।
স্টিভেন ফ্রিটস্কে

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

@ সন্দীপ: এটি আপনার মন্তব্যের জায়গা নয়। গিথুব এ দয়া করে একটি বিশদ প্রতিবেদন / সমস্যা তৈরি করুন ।
স্টিভেন ফ্রিটস্কে

4

এই কোডটি বলে যে পুরো দস্তাবেজটি লোড হওয়ার জন্য অপেক্ষা করুন, তারপরে বাহ্যিক ফাইলটি লোড করুন defer.js

<script type="text/javascript">
    function downloadJSAtOnload() {
        var element = document.createElement("script");
        element.src = "defer.js";
        document.body.appendChild(element);
    }
    if (window.addEventListener)
        window.addEventListener("load", downloadJSAtOnload, false);
    else if (window.attachEvent)
        window.attachEvent("onload", downloadJSAtOnload);
    else window.onload = downloadJSAtOnload;
</script>

এই আপনার অনুসরণ করা প্রয়োজন যে পদক্ষেপ।

  1. উপরের কোডটি অনুলিপি করুন।

  2. </body>ট্যাগের ঠিক আগে (আপনার HTML ফাইলের নীচে) আপনার এইচটিএমএলে কোড আটকান ।

  3. defer.jsআপনার বাহ্যিক জেএস ফাইলের নামে পরিবর্তন করুন।

  4. আপনার ফাইলের পথটি সঠিক কিনা তা নিশ্চিত করুন। উদাহরণ: আপনি যদি কেবল সন্ধান করেন defer.jsতবে ফাইলটি defer.jsঅবশ্যই আপনার এইচটিএমএল ফাইলের মতো একই ফোল্ডারে থাকতে হবে।

আরও তথ্যের জন্য, এই নিবন্ধটি দেখুন


1

Https://github.com/mediarox/pagespeed সমাধানের জন্য এখানে ওপেন সোর্স এক্সটেনশান রয়েছে

বর্তমান বৈশিষ্ট্য

  • সমস্ত জাভাস্ক্রিপ্ট ট্যাগগুলি (শিরোনাম এবং ইনলাইন) নীচে সরান। ({Stripped_html} {JS})
  • শর্তসাপেক্ষে জেএস ইউনিটগুলি ({একাধিক জেএস ট্যাগ})
  • "ইনলাইন" জেএস ট্যাগ সহ বহিরাগত জেএস ট্যাগ সহ
  • সমস্ত সিএসএস ট্যাগ (শিরোনাম এবং ইনলাইন) নীচে সরান। ({Stripped_html} {CSS})
  • শর্তসাপেক্ষ CSS ইউনিট সহ ({একাধিক সিএসএস ট্যাগ})
  • বহিরাগত CSS ট্যাগ সহ
  • ইনলাইন সিএসএস ট্যাগ সহ

সঙ্গতি

ম্যাজেন্টো 1.5.x থেকে ম্যাজেন্টো 1.9.x।

ব্যাকএন্ড কনফিগারেশন

সমস্ত মডিউল (পেজস্পিড_জেস, পেজস্পিড_সিএসএস) ডিফল্টরূপে অক্ষম করা হয়।

কনফিগারেশন পাথ: সিস্টেম> কনফিগারেশন> অ্যাডভান্সড> পেজস্পিড

কিভাবে এটা কাজ করে ?

"নিয়ন্ত্রণকারী_ফ্রন্ট_সেন্ড_সিবন্ধ_ত্যাগ করুন" ইভেন্টের চূড়ান্ত এইচটিএমএল স্ট্রিমটিকে সরল করুন।


গিটহাবের কাছে গিয়ে দেখা গেল যে স্ক্রিপ্টটি সর্বশেষ 23 সেপ্টেম্বর 2015-এ আপডেট হয়েছিল Furthermore এছাড়াও ম্যাগান্টো 2 সম্পর্কে কোনও উল্লেখ নেই it এটি ম্যাজেন্টো 2 এর জন্য কাজ করবে নাকি না? আপনার যদি অন্য কোনও পুনঃসংশোধন / পরামর্শ না থাকে?
মারিকামিটসোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.