Các thuật ngữ bộ đệm của bảng điều khiển - sự khác biệt giữa bộ đệm theo đối số so với ngữ cảnh là gì?


7

Tôi đang cố gắng học cách thiết lập bộ nhớ đệm. Tôi đã xem một video về việc thành thạo bộ nhớ đệm Drupal và tôi có cuốn sách của Earl Miles trên Bảng và Chế độ xem, Khối xây dựng của Drupal , nhưng tiếc là không có chương nào về bộ nhớ đệm.

Vì vậy, tôi có một bảng điều khiển ghi đè hồ sơ người dùng và trên bảng này tôi có một biến thể có một số khung nhìn nội dung. Tôi muốn lưu trữ các bảng nội dung này trên mỗi hồ sơ người dùng được hiển thị, vì rõ ràng chúng phải khác nhau đối với mỗi người dùng được xem.

Mỗi bảng nội dung này có bộ lọc theo ngữ cảnh trên Nội dung: UID của tác giả .

Giá trị được cung cấp cho Bảng theo tùy chọn nhập Đối số trong Chế độ xem, trong đó Nội dung: Nguồn uid của tác giả được đặt thành Từ ngữ cảnhNgữ cảnh bắt buộc được đặt thành ID người dùng :

xem ảnh chụp màn hình

Trong Bảng điều khiển, trên màn hình cấu hình bộ đệm Đơn giản , đối với Độ chi tiết , tôi có thể chọn Đối số hoặc Ngữ cảnh và văn bản trợ giúp là:

Nếu "đối số" được chọn, nội dung này sẽ được lưu trong bộ đệm cho từng đối số cho toàn bộ màn hình; nếu "bối cảnh" được chọn, nội dung này sẽ được lưu trong bộ đệm theo ngữ cảnh duy nhất trong khung hoặc hiển thị; nếu "không" sẽ chỉ có một bộ đệm cho khung này.

Nhưng trong Chế độ xem, tùy chọn được gọi là đầu vào đối số và giá trị tôi chọn là từ ngữ cảnh . Vì vậy, tôi đang đối phó với một đối số hoặc một bối cảnh?

Nếu có thể, cả một câu trả lời chung mô tả sự khác biệt giữa lập luận và bối cảnh trong trường hợp này và một câu trả lời cụ thể cho câu hỏi của tôi sẽ rất tuyệt vời.


Đăng một câu trả lời, hy vọng nó trả lời cả câu hỏi chung và tình huống của bạn, nhưng hãy cho tôi biết nếu tôi không làm.
Letharion

Câu trả lời:


7

Tuyên bố miễn trừ trách nhiệm: Tôi thường thấy rằng thiết lập đủ đơn giản để phân biệt là không cần thiết, do đó tôi phải thừa nhận kinh nghiệm thực tế của mình bị hạn chế và tôi có thể sai dưới đây.

Arguments, được dựa trên URL. node/5được lưu trữ riêng biệt từ node/75, vì 5 khác với 7. node/5/7, nếu bạn có đường dẫn như vậy, thì đó là một bộ đệm khác.

Contexts, thường có nguồn gốc từ Argumentsvà trong các ví dụ ở trên, rất có thể các bộ đệm sẽ giống hệt nhau, bất kể tùy chọn bộ đệm nào người ta sẽ chọn. Tuy nhiên, Contextscũng có thể đến từ (ít nhất) ba nguồn khác, Relationshipsđược xác định thủ công và trường hợp đặc biệt, người dùng đã đăng nhập.

Nếu ngữ cảnh của bạn là cả một nút từ URL và người dùng được kéo từ một entity referencenút trên thì bối cảnh của bạn có hai thực thể duy nhất hoặc hai bối cảnh, nhưng chỉ có một đối số.

Vì vậy, người ta chọn Contexthoặc Argumenttùy thuộc vào việc bạn muốn bộ đệm có đưa bất kỳ bối cảnh "phụ" nào vào câu hỏi hay không.

Nhưng trong Chế độ xem, tùy chọn được gọi là đầu vào đối số và giá trị tôi chọn là từ ngữ cảnh. Vì vậy, tôi đang đối phó với một đối số hoặc một bối cảnh?

Thật không may, thuật ngữ này không hoàn toàn giống nhau giữa hai mô-đun. Các bảng điều khiển gọi các phần động của các đối số URL và nó tạo ra các bối cảnh từ các đối số đó. Các khung nhìn, có nghĩa là một cái gì đó gần hơn với một đối số hàm, khi nó đề cập đến các đối số và trong trường hợp cụ thể này, nó sẽ rút ra đối số từ một ngữ cảnh, được đưa vào bởi các Bảng.


Vì vậy, giả sử, nếu tôi muốn bộ nhớ cache tính đến cả người dùng đã đăng nhậpngười dùng đang xem , tôi có nên sử dụng Bối cảnh không tranh luận không?
Patrick Kenny

1
Có, nếu bạn sử dụng Đối số trong tình huống đó, người dùng đã đăng nhập sẽ bị bỏ qua.
Letharion

Tôi đã thêm nó vào danh sách các nguồn bối cảnh.
Letharion
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.