เมื่อผสาน CSS หรือ JS ไฟล์ใหม่จะถูกสร้างขึ้นสำหรับแต่ละประเภทเพจ


15

เรามีไฟล์ CSS และ JS ขนาดเล็กจำนวนมากและการเปิดใช้งานการผสานดูเหมือนจะเป็นตัวเลือกที่ดี

ไฟล์ CSS และ JS ส่วนใหญ่ใช้ในทุกหน้า (หน้าหลักหน้าหมวดหมู่หน้ารายละเอียดผลิตภัณฑ์)

เมื่อใดก็ตามที่เราเห็นว่ามีการโหลดไฟล์ผสานที่แตกต่างกันอีกครั้งในแต่ละหน้าแม้แต่ CSS ที่มีอยู่จะต้องทับซ้อนกัน

เราจะหลีกเลี่ยงปัญหานี้และนำข้อมูลกลับมาใช้ใหม่ได้อย่างไร


อเล็กซ์คุณรวมถึงไฟล์ css และ js ที่แตกต่างกันในหน้าต่างๆหรือไม่? คุณมีลิงค์หรือข้อมูลใด ๆ ที่ยืนยันว่าการคอมไพล์ / การรวมเป็นพิเศษนี้กำลังเกิดขึ้นหรือไม่? ฉันเห็นบางอย่างเกี่ยวกับเรื่องนี้เมื่อวันก่อนและฉันต้องการทราบข้อมูลเพิ่มเติม เราพบปัญหาในการทำให้ JS รวบรวม / รวมเมื่อเร็ว ๆ นี้
Mark Weston

ไม่มีลิงก์สาธารณะ แต่เช่นในหน้าผลิตภัณฑ์ฉันมีไฟล์.cssและบางอย่างเพิ่มเติม .jsในการติดตั้งเริ่มต้นของ Magento จริง ๆ แล้ว.cssไฟล์นั้นค่อนข้างเหมือนกันทั่วโลกดังนั้นไฟล์ที่ผสานจะมีแฮชเหมือนกัน แต่สำหรับ.jsเรื่องนี้มีความแตกต่างกันมาก - ดังนั้นจึงมีไฟล์รวมใหม่สำหรับหน้าผลิตภัณฑ์และหน้าหมวดหมู่และอื่น ๆ - รวมถึง lib ต้นแบบเต็มเสมอ
Alex

ฉันค้นหาคุณสมบัติ "รวมไฟล์ Javascript" เพื่อช่วยในการป้องกันแคช หวังว่าความคิดเห็นนี้อัปเดตเครื่องมือค้นหาและป้องกันการซ้ำซ้อน
เรย์ฟอสส์

คำตอบ:


14

คำตอบสั้น ๆ :อย่าเปิดใช้งานฟังก์ชันการรวม JS / CSS ของ Magento โดยรวมแล้วประสิทธิภาพการทำงานแย่กว่าตลอดวงจรชีวิตของการชำระเงินทั่วไปมากกว่าการส่งเนื้อหาแต่ละรายการ

คำตอบยาว:คุณควรให้บริการไฟล์ CSS เดียวแก่ผู้ใช้ หลายไฟล์บล็อกการเรนเดอร์จนกว่าจะดาวน์โหลด CSS ทั้งหมด เว้นแต่คุณจะให้บริการ CSS จำนวนมากจะเป็นประโยชน์ในการส่งทั้งหมดในครั้งเดียวแล้วเบราว์เซอร์จะถูกแคช การใช้ตัวประมวลผลล่วงหน้าเช่น Sass หรือ LESS สามารถนำขั้นตอนนี้เข้าสู่กระบวนการสร้างของคุณแทนที่จะปล่อยให้วีโอไอพีทำงานอย่างไม่มีประสิทธิภาพ

สำหรับ JS คุณไม่ควรรวมฝั่งเซิร์ฟเวอร์เหล่านี้ ตัวโหลดสคริปต์ฝั่งไคลเอ็นต์เช่น AMD / RequireJS เป็นตัวเลือกที่ดีกว่าและช่วยจัดการการพึ่งพาซึ่ง Layout XML ของ Magento ไม่ได้ทำ ในโลกแห่งความเป็นจริงถึงแม้ว่าวีโอไอพีจะวางสคริปต์ในหลายจุดในขั้นตอนการชำระเงิน คุณยังดีกว่าที่จะโหลดหน้าแรกที่มีคำขอมากกว่าหนึ่งคำขอและมีเนื้อหาแยกต่างหาก แต่มีแคชในภายหลัง

ส่วนขยาย Fooman Speedster Advanced เป็นทางออกที่ดีที่สุดของคุณสำหรับการรวมสินทรัพย์อย่างชาญฉลาดโดยไม่ต้องทำซ้ำ (วันนี้)

คุณค่อนข้างถูก จำกัด ด้วยสถาปัตยกรรม Magento 1.x ซึ่งเริ่มต้นด้วยแนวทางปฏิบัติที่ไม่ดีสำหรับการทำงานส่วนหน้า มันไม่สมจริงเลยที่จะเปลี่ยนเส้นทางของเรือลำนั้น มีส่วนร่วมใน Magento 2


1
"มีส่วนร่วมกับวีโอไอพี 2"
benmarks

6

เราได้รับการใช้Fooman Speedster วีโอไอพีขยาย เป็นส่วนขยายที่ยอดเยี่ยมที่จัดการการรวมไฟล์ CSS และ JS เพื่อเพิ่มประสิทธิภาพของหน้าเว็บของคุณ

จากหน้า:

เพิ่มความเร็วในร้านของคุณด้วยการรวมบีบอัดและแคชไฟล์ Javascript และ CSS Fooman Speedster รวมไฟล์ Javascript และ CSS หลายไฟล์ไว้ในไฟล์ Javascript เดียวและไฟล์ CSS เดียวเพื่อให้สามารถโหลดหน้าเว็บได้เร็วขึ้น


4
ขอบคุณสำหรับการกล่าวถึง ฉันต้องการจะชี้ให้เห็นส่วนขยาย Speedster ฟรีอื่น ๆ (Speedster Advanced) ซึ่งมาพร้อมกับชุดเครื่องมือปรับรูปแบบเพื่อลดความซ้ำซ้อนในไฟล์ Javascript ที่ผสาน - โปรดดูการนำเสนอของฉันที่การประชุมนักพัฒนา Ibiza 2012 ที่นี่magento-developers-paradise.com / wp-content / uploads / …สำหรับรายละเอียด
Kristof ที่ Fooman

ฉันทำการทดสอบมากมาย มันไม่ได้กำจัดความซ้ำซ้อนทั้งหมด แต่มันก็กำจัดบางส่วน และมันไม่ใช่ minifier ที่ดีที่สุด แต่การลบความซ้ำซ้อนนั้นชดเชยสิ่งที่คุณสามารถทำได้ด้วยตัวเองด้วยเชลล์สคริปต์ @KristofatFooman หากคุณสามารถใช้ระบบuglifyjs --compressและจัดการกับความคิดเห็นที่ดีกว่าคุณจะได้รับการปรับปรุงเพิ่มเติมเล็กลงประมาณ 4% ด้วยรหัสของฉัน ฉันใช้ uglifyjs v3 จากโหนด
เรย์ฟอสส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.