पृष्ठांकित खोज परिणामों को कैशिंग करने के लिए सबसे अच्छा अभ्यास क्या है जिसके आदेश / गुणों को बदला जा सकता है?
कहते हैं, मेरे आवेदन में, कोई अंतिम 20 चर्चा सूत्र (10,000 में से) देखना चाहता है। अनुरोध servlet
थ्रेड टेबल से XML / JSON के रूप में पहले 20 रिकॉर्ड लाने के लिए , डेटाबेस के माध्यम से एक अनुरोध भेजा जाएगा । यदि वे फिर अगले 20 देखना चाहते हैं, तो वे परिणामों के अगले पृष्ठ पर जाते हैं और यह अगले बहुत कुछ प्राप्त करने के लिए एक और अनुरोध निकालता है (सीमा और ऑफसेट = 20, आदि)।
सर्वर लोड और क्लाइंट-वेटिंग को कम करने के लिए, मैं परिणामों के पिछले पृष्ठों को कैश करना चाहूंगा। हालाँकि, मेरे दो सवाल हैं:
- परिणाम जिस तालिका में दिखाए गए हैं वह एक से अधिक विशेषताओं (यानी, थ्रेड-क्रिएशन-डेट, थ्रेड-ऑथर, लास्ट-पोस्ट-डेट) द्वारा आदेशित किया जा सकता है। इसका मतलब यह है कि 'पहले 20 परिणाम' जैसे बयान का संदर्भ के बिना कोई मतलब नहीं है (यानी, हम क्या आदेश दे रहे हैं)। फ्रंट-एंड कैसे करता है, फिर, बैक-एंड को यह बताएं कि यह पहले से लोड हो चुका है? मेरा पहला विचार प्रत्येक परिणाम के लिए आईडी का उपयोग करना था, लेकिन बाद के अनुरोधों पर सर्वर को वापस भेजना (और उन पर आधारित परिणामों को फ़िल्टर करना) बस समय लेने वाली के रूप में सब कुछ नेत्रहीन वापस भेजना होगा। मैं यह कैसे कर सकता हूँ?
- क्या होगा यदि पहले से लौटाए गए परिणाम (यानी, सबसे हाल ही में पोस्ट-डेट) की एक विशेषता बदल गई है? इसके बाद हमें यह देखने के लिए प्रत्येक परिणाम की जाँच करने के तरीके की आवश्यकता है कि क्या यह सर्वर-साइड संशोधित किया गया है क्योंकि इसमें पृष्ठांकित किया गया है। मैं यह कैसे कर सकता हूं?