2010-05-01 6 views
13

मैंने देखा है कि शीर्षक या शरीर हिस्सा अगर मैं वापस करने के लिए आते प्रश्न पूछो अपने ब्राउज़र की वापस बटन दबाने से पेज याद किया जाता है।एसओ के फॉर्म को पिछले इनपुट मानों को कैसे याद किया जाता है?

यह सुविधा मेरे द्वारा परीक्षण किए गए सभी ब्राउज़रों में उपलब्ध है, लेकिन मेरी अपनी परियोजनाओं में प्रपत्रों के लिए मौजूद नहीं है।

मैं उस प्रभाव से कैसे संपर्क कर सकता हूं?

अद्यतन

मैं अभी भी अभी तक कोई सुराग नहीं है, लेकिन यह अनुमान है कि ग्राहक कैश किसी तरह का http हेडर या जावास्क्रिप्ट रूप से सक्षम?

+8

यह सुविधा आमतौर पर आपके ब्राउज़र द्वारा संभाली जाती है। –

+7

फिर यह सुविधा एक ही ब्राउज़र में अपनी परियोजना के लिए क्यों नहीं है? उद्देश्य से कुछ अलग होना चाहिए। – user198729

+0

लोग शायद आपको बता सकते हैं कि सही कैशिंग संबंधित http शीर्षलेख प्रदान करने के लिए अपने सर्वर को कॉन्फ़िगर कैसे करें, यदि आपने पृष्ठों की सेवा करने वाले सर्वर सॉफ़्टवेयर के बारे में जानकारी शामिल की है। प्रत्येक सर्वर के पास इस तरह के चीजों के लिए अपनी कॉन्फ़िगरेशन है .... – vkraemer

उत्तर

6

इसे अपने पृष्ठ के कैशिंग गुणों के साथ करना है।

1) यदि ब्राउज़र को आपके पृष्ठ को कैश करने की अनुमति है, तो यह फॉर्म फ़ील्ड भी याद रखेगा।

2) यदि पृष्ठ को कैश करने की अनुमति नहीं है, तो यह सब कुछ भूल जाएगा।

आमतौर पर, गतिशील रूप से जेनरेट किए गए पृष्ठ श्रेणी 2 में आते हैं, इसलिए आपको कैशिंग दिखाई नहीं देती है। यह वास्तव में HTTP शीर्षलेखों (विशेष रूप से कैश-कंट्रोल और अंतिम-संशोधित, या ई-टैग का उपयोग करके) द्वारा निर्धारित किया जाता है। कैसे अपने ब्राउज़र कैशिंग (! गैर तुच्छ) निर्धारित करता है पर स्पष्टीकरण के लिए, उदाहरण के लिए देखें:

http://www.webscalingblog.com/performance/caching-http-headers-last-modified-and-etag.html

लेकिन सबसे आसान एक स्थिर HTML पृष्ठ पर प्रपत्र डाल करने के लिए है, तो अपने वेब सर्वर सब कुछ संभाल लेंगे।

+0

मैं फॉर्म को एक स्थिर HTML पृष्ठ पर नहीं डाल सकता, और मैं नहीं करता यह नहीं पता कि 'कैश-कंट्रोल' स्वचालित रूप से '\t नो-स्टोर, नो-कैश, अवश्य-पुनरीक्षित, पोस्ट-चेक = 0, प्री-चेक = 0', और 'प्रगमा' को 'नो- cache'। – user198729

+0

कैश-कंट्रोल डायनामिक पृष्ठों के लिए उन मानों पर सेट है क्योंकि (आमतौर पर) आप चाहते हैं कि उपयोगकर्ता हर बार एक नया जेनरेट पेज देखें, यह सुनिश्चित करने के लिए कि वह सबसे हालिया जानकारी देखता है। यदि नहीं, तो आप अपनी स्क्रिप्ट से एक अलग कैश-कंट्रोल हेडर प्रदान कर सकते हैं। अधिक विशिष्ट होने के लिए, मुझे यह जानने की ज़रूरत है कि आप पृष्ठ उत्पन्न करने के लिए किस भाषा का उपयोग करते हैं। – wump

+0

@wump: क्या वेब ब्राउज़र को इनपुट मानों को पूर्ववत करने के तरीके पर मानक नमूना है? या ब्राउज़र "इसे महसूस करते हैं" को कार्यान्वित कर रहे हैं? –

0

कोई जादू नहीं है। ,

<?xml version="1.0"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test</title> 
</head> 
<body> 
    <input type="text" name="title" value="" /> 
    <a href="http://www.google.com">Google</a> 
</body> 
</html> 

यह आपके ब्राउज़र में ओपन कुछ पाठ टाइप करें, लिंक पर क्लिक करें और फिर वापस बटन और यह मूल्य याद होगा: बस निम्न HTML प्रयास करें। आईई 8, फ़ायरफ़ॉक्स 3.6, क्रोम 4 पर परीक्षण और काम कर रहा है।

+2

मुझे इसमें कुछ खास नहीं दिख रहा है, क्या आप समझा सकते हैं कि यह क्यों काम करता है? – user198729

+1

यह शायद काम करता है क्योंकि इसे स्थानीय फाइल सिस्टम पर वेबसर्वर के बिना देखा गया था। –

+0

@ user198729: "इसे अपने पृष्ठ के कैशिंग गुणों के साथ करना है।" 'Wump' का जवाब देखें (वर्तमान में स्वीकृत उत्तर) –

1

जबकि मैं वास्तव में बहुत adivce नहीं दे सकता, "सवाल पूछें" पृष्ठ के http हेडर इस तरह दिखता है:

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Type: text/html; charset=utf-8 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.5 
Set-Cookie: [EDITED AWAY} 
Date: Mon, 03 May 2010 16:04:44 GMT 
Content-Length: 4800 

मैं अपने खुद के पृष्ठों/रूपों, विशेष रूप से किसी भी हेडर है कि तुलना करता हूँ कैशिंग और समाप्ति से निपटना।

+0

मैंने कोई हेडर जानकारी सेट नहीं की है, ऐसा लगता है कि मेरा वेब सर्वर स्वचालित रूप से मेरे लिए कैश नीति जोड़ता है, जो कि मैं वांछित नहीं था। – user198729

4

आपको अपने द्वारा प्रदान किए जाने वाले पृष्ठों पर Cache-Control पैरामीटर सेट करने के लिए एक तंत्र खोजने की आवश्यकता है।

आप यह इंगित नहीं करते कि आप वेब पेजों की सेवा कैसे कर रहे हैं। लेकिन, यहां किसी ASP पेज कि जब एक पृष्ठ पर आकर वापसी बटन का प्रयोग करने के लिए गायब हो जाते हैं रूप सामग्री का कारण बनता है का एक उदाहरण है (इस व्यवहार आप वर्तमान में सामना कर रहे हैं है):

<% Response.CacheControl = "no-cache" %>  
<% Response.AddHeader "Pragma", "no-cache" %>  
<% Response.Expires = -1 %>  
<HTML>  
<HEAD>  
<TITLE>Test page</TITLE>  
</HEAD>  
<BODY>  
Type some text into this box, click SO followed by the BACK button: 
<input type="text" name="title" value="" /> 
<a href="http://www.stackoverflow.com">SO</a>  
<p>  
When you get back the text you typed will be gone. 
</BODY>  
</HTML>  

नोट शीर्ष 3 लाइनें, कुछ मामूली संशोधन करें ...

<% Response.CacheControl = "private" %>  
<HTML>  
<HEAD>  
<TITLE>Test page</TITLE>  
</HEAD>  
<BODY>  
Type some text into this box, click SO followed by the BACK button: 
<input type="text" name="title" value="" /> 
<a href="http://www.stackoverflow.com">SO</a>  
<p>  
When you get back the text you typed will still be there 
</BODY>  
</HTML>  

अब इनपुट फ़ील्ड सामग्री संरक्षित है। यह वह व्यवहार है जिसे आप प्राप्त करने का प्रयास कर रहे हैं। वहां आपके विशिष्ट आवश्यकताओं और आपके सर्वर द्वारा लागू डिफ़ॉल्ट के आधार पर सेट करने के लिए आवश्यक अतिरिक्त पैरामीटर हो सकते हैं।

Cache Control in ASP: कैश-नियंत्रण के लिए

अधिक जानकारी पर उपलब्ध हैं। माइक्रोसॉफ्ट की अधिकांश चीजों के साथ, यह केवल आईई पर चर्चा करता है।

Caching पर यह ट्यूटोरियल PHP सहित कई अलग-अलग वेब सर्वरों के लिए उदाहरण कोड के साथ एक अच्छा परिचय प्रदान करता है।

w3.org संदर्भ है कि आप वास्तव में अध्ययन करने की आवश्यकता है, खासकर कैश-कंट्रोल पर धारा 14.9।

व्यवहार प्राप्त करने की कुंजी जो आप खोज रहे हैं वह सही कैश नियंत्रण पैरामीटर के साथ पृष्ठों की सेवा में है।

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

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