การจัดการบล็อกในธีมที่ตอบสนองได้


15

ฉันเพิ่งเริ่มต้นธีมที่ตอบสนองตามโอเมก้าโดยเน้นที่รูปแบบมือถือในตอนแรก

มีบล็อกบางอย่างที่อาจถือว่าหนักเกินไปที่จะรวมไว้ในเลย์เอาต์มือถือและบล็อคอื่น ๆ ที่จะต้องมีการแนะนำเป็นพิเศษสำหรับเลย์เอาต์นั้น (เมนูที่เลื่อนลงมา

ฉันสามารถซ่อนบล็อคที่ไม่ต้องการบนเลย์เอาต์มือถือได้อย่างง่ายดายด้วย CSS และรวมบล็อกเฉพาะของมือถือไว้ในเลย์เอาต์เริ่มต้นและซ่อนบล็อกเหล่านั้น (ดังนั้นมันจะแสดงเฉพาะสำหรับมือถือ) แต่ดูเหมือนว่าจะค่อนข้างล้าหลัง มัน. หากบล็อกไม่ปรากฏขึ้นค่าใช้จ่ายเพิ่มเติมที่เกิดขึ้นจริงจะไม่สามารถยอมรับได้ (โดยเฉพาะอย่างยิ่งการพิจารณาจำนวนการสืบค้นฐานข้อมูลเพิ่มเติมที่เพิ่มเนื้อหาในบล็อกที่ซ่อนอยู่)

ฉันคิดว่าต้องมีวิธีที่ดีในการสกัดกั้นกระบวนการตัดสินใจบล็อกในช่วงต้นของการสร้างหน้าเว็บและไม่รวม / รวมบล็อกตามการตรวจจับระบบปฏิบัติการบางอย่าง แต่ฉันวาดภาพเปล่า ๆ เป็นไปได้

ฉันกำลังจะโยนในความจริงที่ว่าวานิชกำลังทำงานอยู่หน้าเว็บไซต์นี้ซึ่งจะทำให้สิ่งต่าง ๆ สนุกขึ้น :)

มีโมดูล / กลวิธีที่ทราบว่าสามารถช่วยได้หรือไม่?

ฉันควรเพิ่มว่าการใช้โมดูลบริบทไม่ใช่ตัวเลือกเนื่องจากไซต์นั้นเต็มเปี่ยมแล้วและการย้ายไปยังบริบทจะกลายเป็นเรื่องใหญ่ในตอนนี้


4
ฉันจะไม่มีคำถามได้ใช้แผงและปลั๊กอินการเข้าถึงตัวแทนผู้ใช้ที่เกี่ยวข้อง บริบทอาจทำเช่นเดียวกัน แต่อย่างที่คุณพูดไปแล้วนั่นไม่ใช่ตัวเลือก แน่นอนว่ามีความเป็นไปได้ที่น่ากลัวของการประเมิน: ไอเอ็นจีมองเห็นบล็อก แต่ ... ในทางกลับกันด้วยวานิชเบื้องหน้าการสืบค้นฐานข้อมูลเพิ่มเติมที่บล็อกเหล่านี้ทำงานอาจไม่เป็นปัญหามากนัก?
Letharion

@ Letharion ใช่นั่นคือความคิดปล่อยวานิชเอาความเครียด แม้ว่าไซต์จะมีผู้ใช้ที่ใช้งานอยู่สองสามแสนคนและวานิชก็มีส่วนเกี่ยวข้องกับปริมาณการใช้ที่ไม่ระบุตัวตน เราจะเล่นกับ ESI ค่อนข้างเร็ว แต่ถึงอย่างนั้นฉันก็สามารถนึกถึงปัญหา ... จากมุมมองของ SEO มาร์กอัป / เมนูเพิ่มเติมจะหนักและอาจเกิดความสับสนไม่ต้องพูดถึงน้ำหนักพิเศษ (ไม่จำเป็น) บนหน้าสำหรับ ผู้ใช้มือถือ มันเป็นงานที่ยาก!
ไคลฟ์

1
อาจเพิ่มตัวจัดการบล็อกที่ชาญฉลาดยิ่งขึ้น (แผง / บริบท / อื่น ๆ ) ไปยังหน้าที่มีน้ำหนักมากที่สุดเพื่อให้คุณได้รับประโยชน์จากมันโดยไม่จำเป็นต้องทำซ้ำไซต์ทั้งหมดหรือไม่
Letharion

1
ฉันไม่เห็นด้วยที่ทำให้คำถามโง่หรือผู้เปลี่ยนเกมทั้งหมด สารเคลือบเงาสามารถกำหนดค่าให้จัดการกับปัญหาได้อย่างดีเยี่ยมเพียงแค่ไม่รู้ว่าการกำหนดค่านอกกรอบทำได้อย่างไร
Letharion

2
@ ไคลฟ์: มีคำพูดเก่า: "ไม่มีสิ่งเช่นคำถามโง่เพียงคำตอบโง่!" ;-)
AjitS

คำตอบ:


4

สกัดกั้นกระบวนการตัดสินใจของบล็อกในช่วงต้นของการสร้างหน้าและยกเว้น / รวมบล็อกตามการตรวจจับระบบปฏิบัติการบางอย่าง

วานิชทำงานอยู่หน้าเว็บไซต์นี้

ตามที่ระบุไว้ในความคิดเห็นแล้วสิ่งนี้ต้องการให้คุณกำหนดค่าวานิชให้ไม่แคชเฉพาะใน URL คำขอ แต่ยังแตกต่างกันไปใน user-agent มีตัวอย่างที่เกี่ยวข้องในวิกิพีเดียวานิชเป็นVCLExampleNormalizeUserAgent

เมื่อคำขอจริงไม่ตีเว็บไซต์ที่คุณจำเป็นต้องตรวจสอบบล็อกซึ่งจะแสดงและจะไม่แสดง ผมจะพิจารณามันไม่น้อยกว่าภัยพิบัติที่จะทำเช่นนี้กับEVALดังนั้นตัวเลือกที่พบมากที่สุดทางซ้ายแล้วมีบริบทและแผง

พร้อมสร้างเว็บไซต์แล้ว การทำซ้ำหน้า / บล็อกทั้งหมดด้วยโมดูลอาจไม่ใช่ตัวเลือก แต่ด้วยตัวสร้างโปรไฟล์และการใช้80-20อาจเป็นไปได้ที่จะเพิ่มประสิทธิภาพการทำงานอย่างมีนัยสำคัญโดยการทำซ้ำหน้าเฉพาะเท่านั้น


ขอบคุณมากที่น่าสนใจจริงๆ ไซต์ที่เป็นปัญหาอยู่ใน Pantheon ดังนั้นฉันจึงไม่คิดว่าการกำหนดค่า Varnish เป็นตัวเลือก แต่สิ่งนี้ได้กลายเป็นคำถามทั่วไปที่พิมพ์ว่า 'เราจะทำคำถามเชิงทฤษฎีได้อย่างไร' ในขณะนี้ดังนั้นจึงมีประโยชน์มาก
Clive

Pantheon อนุญาตให้คุณตั้งค่าคุกกี้ STYXKEY (ในตอนท้ายของhelpdesk.getpantheon.com/customer/portal/articles/425726 ) และพวกเขาอนุญาตให้คุณจัดหมวดหมู่สิ่งที่ Varnish แคช / ให้บริการสำหรับผู้ใช้ anon
Jimajamma

เว้นระยะห่างจากค่าหัวนี้โดยสิ้นเชิงฉันอยากจะแยกมันออกมาระหว่างคำตอบทั้งสอง แต่ชีวิตไม่ใช่แบบนั้น ระบบเลือก Chapabu's เพื่อมอบความโปรดปรานดังนั้นเห็บสีเขียวตัวเล็ก ๆ ก็เข้ามาหาคุณ :)
Clive

10

ฉันไม่สามารถไปเป็นจำนวนมากของรายละเอียดที่ผมไม่ได้ใช้โมดูลทั้งสำหรับทุกเพศทุกวัย (ฉันสร้างเว็บไซต์ของฉันทั้งหมดที่มีบริบทจากคำไปและผมก็ไม่ได้หยิบขึ้นมาตอบสนองในสิ่งที่ฉันไม่ได้สร้างขึ้นสำหรับ ในขณะที่ดังนั้นฉันไม่เคยมีปัญหานี้มาก่อน) แต่ฉันคิดว่าคุณควรที่จะรวมอะไรกับ Mobile Tools and Spaces

ช่องว่าง

Spaces เป็นโมดูล API ที่มีวัตถุประสงค์เพื่อให้ตัวเลือกการกำหนดค่าโดยทั่วไปสามารถใช้ได้เฉพาะในระดับไซต์ที่จะกำหนดค่าและลบล้างโดย "ช่องว่าง" แต่ละรายการบนไซต์ Drupal มันได้รับการอธิบายว่า:

  • วิธีในการทำให้ไซต์ Drupal หนึ่งไซต์ทำหน้าที่เหมือนกับหลาย ๆ ไซต์
  • วิธีที่จะมอบกลุ่มอินทรีย์หรือหน้าแรกของผู้ใช้ที่กำหนดค่าได้อย่างเต็มรูปแบบ
  • API ทั่วไปสำหรับการกำหนดค่าตามบริบท

เครื่องมือมือถือ

โมดูลเครื่องมือเคลื่อนที่มอบเครื่องมือบางอย่างให้นักพัฒนา Drupal เพื่อช่วยในการปรับเปลี่ยนไซต์ของคุณตามอุปกรณ์ของผู้เข้าชม

หน้าโครงการสำหรับ MT บอกว่ามันยังไม่พร้อมสำหรับการผลิตซึ่งอาจเป็นปัญหา - ขึ้นอยู่กับว่ามันได้รับการอัพเดทครั้งล่าสุดเมื่อใดที่คอมมิชชันล่าสุดคือเดือนนี้

* แก้ไข

ฉันลืมเรื่องนี้โดยสิ้นเชิง!

Browscap

Browscap ให้ฟังก์ชัน get_browser () ของ PHP รุ่นปรับปรุง

บล็อก Browscap

Browscap Block เพิ่มตัวเลือกการเปิดเผยเพื่อบล็อกการตั้งค่าเพื่ออนุญาตให้คุณซ่อนหรือแสดงบล็อคในอุปกรณ์มือถือ

Browscap ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์ของคุณ แต่หากคุณสามารถใช้งานได้โมดูลที่สองจะให้การตั้งค่าการมองเห็นเพิ่มเติมสำหรับแต่ละบล็อกในหน้าแก้ไขบล็อก

ป้อนคำอธิบายรูปภาพที่นี่


Browscap Block ดูเหมือนจะมีคำขอบคุณจริง ๆ ฉันจะตรวจสอบในอีกไม่กี่วันข้างหน้าและแจ้งให้คุณทราบ
Clive

อุ๊ปส์นี้หนีไปจากฉันโดยสิ้นเชิงขอโทษด้วยค่าหัวครึ่ง!
ไคลฟ์

0

คุณสามารถใช้การสนับสนุนข้ามเบราว์เซอร์ jQuery เพื่อรับความละเอียดหน้าจอ:

var browserWidth  = $(window).width();
var browserHeight = $(window).height();

เพิ่มสคริปต์ PHP อย่างง่ายเพื่อแสดงการตั้งค่าของบล็อกที่เกี่ยวข้อง


ขอบคุณ แต่นั่นไม่ได้หมายความว่าจะแปลงทั้งไซต์ให้ใช้ AJAX สำหรับบล็อกหรือไม่ ฉันกำลังมองหาที่จะทำฝั่งเซิร์ฟเวอร์นี้ถ้าเป็นไปได้
Clive

0

คุณสามารถใช้Mobile Detect Blockแต่ตอนนี้ฉันกำลังมองหาวิธีแก้ปัญหาที่ทำงานได้กับความกว้างของหน้าต่างและAdaptiveThemeจุดพักหรือแบบสอบถามจุดพักสื่อโมดูลเพื่อที่จะไม่ทำซ้ำรหัสนั้นและทำให้ผู้ใช้ปลายทางดาวน์โหลดมากกว่าที่เป็นอยู่ ฉันยังได้รับผลลัพธ์ที่หลากหลายด้วย Mobile Detect ซึ่งไม่ได้หยิบขึ้นมาบนอุปกรณ์เดียวที่ฉันทดสอบด้วยซึ่งทำให้ไร้ประโยชน์เช่นเดียวกับ Browscap หากไม่สามารถให้ผลลัพธ์ที่เชื่อถือได้

การอภิปรายบางคนมีบางคนที่ต้องการที่จะได้รับจาก Browscap สำหรับหนึ่งหรือเหตุผลอื่นจึงย้ายไปยังมือถือตรวจหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.