2010-05-12 33 views
9

Tôi có hành động chỉ mục bộ điều khiển trả về kết xuất json.Cách kết xuất bộ nhớ cache: json

render :json => my_array.to_json 

Tôi phải sử dụng loại bộ nhớ đệm nào ở đây. Có 'bộ nhớ đệm trang' có ý nghĩa cho việc này không.

Hoặc làm tôi phải làm bộ nhớ đệm hành động như dưới đây

caches_action :index 

Trả lời

3

Hoặc bộ nhớ đệm hành động hoặc trang bộ nhớ đệm sẽ làm việc tốt; bộ nhớ đệm trang sẽ có lợi ích khi không bao giờ gọi ngăn xếp Rails, nhưng nó phụ thuộc vào việc bạn có cần phải kiểm soát ai truy cập vào nguồn cấp dữ liệu Json đó hay không.

Tôi là một người hâm mộ lớn về việc sử dụng bộ nhớ đệm trang nếu bạn có thể thoát khỏi nó - có nhiều khoản tiết kiệm lớn về tài nguyên hệ thống cần có. :)


EDIT: trang bộ nhớ đệm Ví dụ, trong trường hợp có bất kỳ sự nhầm lẫn:

class SomeController < ApplicationController 
    caches_page :index 
    def index 
    render :json => my_array.to_json 
    end 
end 

Trừ khi tôi đã hiểu lầm gì đó, mà nên là tất cả các bạn cần phải làm.

+0

làm cách nào để chỉ định bộ nhớ đệm trang cho json. Tôi không có bất kỳ mẫu nào trong quan điểm của tôi? – user290870

+0

Bạn chỉ có thể chỉ định nó trong bộ điều khiển, thêm mã vào câu trả lời của tôi. – robotmay

+0

thanks !. Tôi nghĩ rằng bộ nhớ đệm trang yêu cầu tên của chế độ xem được lưu vào bộ nhớ cache làm đối số cho 'caches_page' thay vì hành động. – user290870

2

Những cân nhắc tương tự nên áp dụng cho JSON như bất kỳ đầu ra nào khác. Nếu bạn cần xác thực quyền truy cập vào dữ liệu cho người dùng thì thao tác lưu bộ nhớ cache là cách để thực hiện, nếu không, bộ đệm trang sẽ ổn.

Nếu dữ liệu thay đổi do logic trong ứng dụng của bạn, thì cả hai hình thức lưu vào bộ nhớ cache đều có vấn đề và bạn nên sử dụng thứ gì đó khác.

+1

làm cách nào để chỉ định bộ nhớ đệm trang cho json. Tôi không có bất kỳ mẫu nào trong quan điểm của tôi? – user290870

Các vấn đề liên quan