2010-05-12 26 views
9

मेरे पास एक नियंत्रक अनुक्रमणिका क्रिया है जो जेसन आउटपुट देता है।कैश कैश कैसे करें: जेसन

render :json => my_array.to_json 

मुझे किस प्रकार के कैशिंग का उपयोग करना है। क्या 'पेज कैशिंग' इसके लिए समझ में आता है।

या मैं की तरह नीचे

caches_action :index 

उत्तर

3

या तो कार्रवाई कैशिंग या पृष्ठ कैशिंग ठीक काम करेगा कार्रवाई कैशिंग मुझे क्या करना होगा; पेज कैशिंग को रेल स्टैक को कभी भी कॉल करने का लाभ नहीं होगा, लेकिन यह इस बात पर निर्भर करता है कि आपको उस जेसन फ़ीड को किसने एक्सेस किया है या नहीं।

यदि आप इससे दूर हो सकते हैं तो मैं पृष्ठ कैशिंग का उपयोग करने का एक बड़ा प्रशंसक हूं - सिस्टम संसाधनों पर बड़ी बचत होती है। :)


संपादित करें: पृष्ठ कैशिंग उदाहरण के लिए, मामले में किसी भी भ्रम था:

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

जब तक मैं कुछ गलत समझा गया है, कि तुम सब करने की जरूरत है होना चाहिए।

+0

मैं जेसन के लिए पेज कैशिंग निर्दिष्ट कैसे करूं। मेरे पास मेरे विचार में कोई टेम्पलेट नहीं है? – user290870

+0

आपको इसे नियंत्रक में निर्दिष्ट करने में सक्षम होना चाहिए, मेरे उत्तर में कोड जोड़ा गया। – robotmay

+0

धन्यवाद! मैंने सोचा कि पृष्ठ कैशिंग को कार्रवाई के बजाय 'caches_page' के तर्क के रूप में कैश किए जाने वाले दृश्य का नाम आवश्यक है। – user290870

2

जेएसओएन पर किसी भी अन्य आउटपुट के रूप में समान विचार लागू होना चाहिए। यदि आपको उपयोगकर्ता के डेटा तक पहुंच को सत्यापित करने की आवश्यकता है, तो एक्शन कैशिंग जाने का तरीका है, अन्यथा पृष्ठ कैशिंग ठीक होना चाहिए।

यदि आपके ऐप में तर्क के कारण डेटा बदलता है, तो कैशिंग के दोनों रूप समस्याग्रस्त हैं और आप कुछ और उपयोग करने से बेहतर हैं।

+1

मैं जेसन के लिए पेज कैशिंग निर्दिष्ट कैसे करूं? मेरे पास मेरे विचार में कोई टेम्पलेट नहीं है? – user290870

संबंधित मुद्दे