Điểm:1

Khối tùy chỉnh vẫn đang lưu vào bộ nhớ đệm cho người dùng ẩn danh mặc dù getCacheMaxAge() được đặt thành 0 và không thể hiểu tại sao

lá cờ ng

Tôi có một khối Drupal 8 tùy chỉnh với lớp có các hàm build() và getCacheMaxAge(). getCacheMaxAge() được đặt thành 0 nhưng nó vẫn đang được lưu trong bộ nhớ cache cho người dùng ẩn danh.

Nếu tôi đặt mã gỡ lỗi trong hàm build(), tôi có thể thấy nó được gọi khi tôi đăng nhập nhưng không phải cho người dùng ẩn danh.

Mã của tôi ở bên dưới. Chúng tôi đã cài đặt Memcached. Điều đó sẽ gây ra vấn đề?

Các mô-đun bộ nhớ đệm duy nhất khác là lõi.

<?php
class HeaderPhone extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {

    $info = geo_location_blocks_get_region();
    $region = $info['region'];
    $tid = $info['tid'];

    return array(
        '#theme' => 'geo_location_header_phone',
        '#region' => $region,
        '#view' => views_embed_view('locations', 'block_3', $tid),
      
    );
  }

  /**
   * @return int
  */
  public function getCacheMaxAge() {
    return 0;
  }
}?>

  
Jaypan avatar
lá cờ de
Bạn cũng có thể cần thêm tuổi tối đa vào mảng kết xuất, sử dụng `'#cache' => ['max-age' => 0]]`.
quantumized avatar
lá cờ ng
Cảm ơn Jaypan, tôi đã thử thêm #cache vào mảng kết xuất như đã đề xuất nhưng khối này vẫn đang lưu vào bộ nhớ đệm cho người dùng ẩn danh.
Jaypan avatar
lá cờ de
Đọc lại bài đăng của bạn, memcached có thể là một vấn đề. Bạn có thể thử tắt tính năng này và xem sự cố có tiếp diễn không. Hoặc thử nghiệm trên môi trường đã tắt memcache. Khả năng khác là bộ nhớ cache của trang có thể lưu vào bộ nhớ đệm toàn bộ trang cho người dùng ẩn danh.
quantumized avatar
lá cờ ng
Tôi đã loại trừ memcached. Tôi đã kiểm tra sự cố trên một bản sao trang web trên một máy chủ khác không có Memcached và sự cố vẫn còn đó.
Điểm:5
lá cờ cn

Đặt tuổi tối đa của bộ đệm thành 0 sẽ không hoạt động nếu bạn vẫn có mô-đun lõi Bộ đệm trang nội bộ kích hoạt.

Đọc tài liệu tại sao bạn có thể muốn tắt mô-đun này hoặc phân phối khối bằng một phương thức khác:

Các trang web cung cấp nội dung được cá nhân hóa cho người dùng ẩn danh (động, mỗi phiên, ví dụ: giỏ hàng) sẽ muốn vô hiệu hóa Nội bộ Mô-đun bộ đệm trang. Mô-đun này giả định rằng các trang giống hệt nhau đối với tất cả người dùng ẩn danh. Những trang web đó vẫn có thể tận dụng lợi thế của Mặc dù vậy, mô-đun Bộ đệm trang động hoặc có thể thay thế cá nhân hóa bằng JavaScript + AJAX.

https://www.drupal.org/docs/administering-a-drupal-site/internal-page-cache

quantumized avatar
lá cờ ng
Cảm ơn bạn. mô-đun Bộ đệm trang nội bộ là vấn đề.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.