Score:3

BigPipe สามารถยกเว้นบล็อกบางบล็อกได้หรือไม่

ธง et

ฉันเปิดใช้งาน BigPipe ใน Drupal 8 แล้ว และช่วยให้หน้าเว็บโหลดได้เร็วขึ้นในตอนแรก

อย่างไรก็ตาม บล็อกส่วนหัวเป็นหนึ่งในบล็อกที่โหลดในความล่าช้าเสมอ ซึ่งดูไม่ดีเนื่องจากเนื้อหาเลื่อนลงในภายหลัง

มีการประมวลผลล่วงหน้าประเภทใดในบล็อกที่จะยกเว้นไม่ให้โหลด BigPipe ในความล่าช้า และบังคับให้โหลดในหน้าเริ่มต้นหรือไม่

ขอบคุณมาก.

Score:4
ธง cn

คุณสามารถยกเว้นบล็อกจาก BigPipe ได้โดยการปิดใช้ตัวยึดตำแหน่งในการสร้างบล็อก (การประมวลผลล่วงหน้าจะสายเกินไป)

/**
 * ใช้ hook_block_build_BASE_BLOCK_ID_alter()
 */
ฟังก์ชัน mymodule_block_build_example_block_alter (อาร์เรย์ &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  // ปิดการใช้งานตัวยึดตำแหน่งบล็อกนี้
  $build['#create_placeholder'] = FALSE;
}

แต่ถ้านี่เป็นหนึ่งในบล็อกที่มีการหน่วงเวลาอยู่เสมอ ก็อาจทำให้โมดูล BigPipe ทั้งหมดไร้ประโยชน์ได้

คุณสามารถแก้ไขการเปลี่ยนแปลงเนื้อหาใน CSS ชะลอหรือหยุดการเรนเดอร์บล็อก (ในกรณีนี้ คุณสามารถใช้การประมวลผลล่วงหน้า) และเติมช่องว่างในหน้าที่โหลดบางส่วนด้วย CSS

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

ตัวอย่างบล็อก:

  สร้างฟังก์ชั่นสาธารณะ () {
   
    $สร้าง = [];
   
    $สร้าง[] = [
      '#markup' => '<p>ส่วนคงที่ของบล็อก โหลดด้วยหน้าแรก</p>',
    ];

    $สร้าง[] = [
      '#lazy_builder' => ['\Drupal\mymodule\LazyBuilders::getUser', []],
      '#cache' => ['บริบท' => ['ผู้ใช้']],
      // บริบทผู้ใช้ เซสชัน หรืออายุสูงสุด 0 จะถูกแทนที่โดยอัตโนมัติ
    ];

    ส่งคืน $build;
  }

/src/LazyBuilders.php:

<?php

เนมสเปซ Drupal\mymodule;

ใช้ Drupal\Core\Render\Element\RenderCallbackInterface;

คลาส LazyBuilders ใช้ RenderCallbackInterface {

  ฟังก์ชันคงที่สาธารณะ getUser() {
    กลับ [
      '#markup' => \Drupal::currentUser()->getDisplayName(),
    ];
  }

}
chantdev avatar
et flag
ขอบคุณ ฉันจะลองทำดู

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา