मैं किसी भी सर्वर पर यूआरएल कॉल को विंडोज मशीन पर किसी एप्लिकेशन के भीतर चलने वाले वीबीस्क्रिप्ट से बनाया गया कैश बंद करना चाहता हूं। ऐसा करने के लिए मैं किस कार्य/विधि/वस्तु का उपयोग करता हूं?वीबीस्क्रिप्ट: सर्वर से HTTP प्राप्त करने के लिए HTTP की प्रतिक्रिया प्राप्त करने के लिए अक्षम करें
जब कॉल पहली बार किया जाता है, तो मेरा लिनक्स आधारित अपाचे सर्वर सीजीआई पर्ल स्क्रिप्ट से प्रतिक्रिया वापस लौटाता है कि यह चल रहा है। हालांकि, स्क्रिप्ट के बाद के रन पहली बार एक ही प्रतिक्रिया का उपयोग कर रहे हैं, इसलिए डेटा कहीं भी कैश किया जा रहा है। मेरे सर्वर लॉग यह पुष्टि करते हैं कि बाद के समय में सर्वर को पहली बार नहीं कहा जा रहा है।
यही वह है जो मैं कर रहा हूं। मैं एक व्यावसायिक अनुप्रयोग के भीतर से निम्नलिखित कोड का उपयोग कर रहा (इच्छा नहीं है इस आवेदन, शायद मेरी समस्या के लिए प्रासंगिक नहीं उल्लेख करने के लिए):
With CreateObject("MSXML2.XMLHTTP")
.open "GET", "http://myserver/cgi-bin/nsr/nsr.cgi?aparam=1", False
.send
nsrresponse =.responseText
End With
वहाँ ऊपर वस्तु पर एक समारोह/विधि कैशिंग बंद करने के लिए है , या यूआरएल बनाने से पहले प्रतिक्रिया ऑब्जेक्ट पर कैशिंग बंद करने के लिए मैं एक विधि/फ़ंक्शन को कॉल कर रहा हूं?
मैंने यहां समाधान के लिए देखा: http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx - काफी उपयोगी नहीं है। और यहां: http://www.w3.org/TR/XMLHttpRequest/ - बहुत असभ्य और पढ़ने के लिए मुश्किल है।
मैं भी कैश का उपयोग नहीं HTTP हेडर सेटिंग्स और एचटीएमएल दस्तावेज़ हैडर मेटा डाटा का उपयोग मजबूर करने के लिए कोशिश कर रहा हूँ:
सर्वर साइड पर्ल CGI स्क्रिप्ट कि प्रतिक्रिया बुला ग्राहक के लिए वापस लौट आता है, केस्निपेट को समाप्ति सेट 0.
print $httpGetCGIRequest->header(
-type => 'text/html',
-expires => '+0s',
);
जवाब में HTTP हेडर सेटिंग्स ग्राहक के लिए वापस भेज दिया:
<html><head><meta http-equiv="CACHE-CONTROL" content="NO-CACHE"></head>
<body>
response message generated from server
</body>
</html>
ऊपर HTTP शीर्ष लेख और html दस्तावेज़ के शीर्ष सेटिंग्स ज काम नहीं किया, इसलिए मेरा सवाल है।
आपके समय टॉमलाक के लिए बहुत बहुत धन्यवाद। मैंने पाया कि WinHttpRequest.5.1 COM ऑब्जेक्ट कैश नहीं करता है। हालांकि, मुझे आत्मविश्वास हासिल करने के लिए व्यापक परीक्षण करना होगा। अलग-अलग यूआरएल-प्रत्येक-टाइम टिप के लिए +1 - यह निश्चित रूप से विचार करने के लिए एक टिप है - मैं इसका उपयोग कर सकता हूं और साथ ही WinHttpRequest.5.1 और उस अतिरिक्त यूआरएल पैरामीटर से निपटने के लिए हमारे सर्वर का विस्तार कर सकता हूं। मैं शायद उच्च परिशुद्धता के लिए समय-समय पर अनुरोध फ़ील्ड शामिल करूंगा, उदा। मिलीसेक्स शायद। समाधान के हिस्से के रूप में विचार करना निश्चित रूप से लायक है। – therobyouknow
अब आपके यादृच्छिक यूआरएल सुझाव के रूप में स्वीकृत उत्तर मार्ग कारण को हिट करता है - कैशिंग और इसे तोड़ता है ताकि कोड हर बार सर्वर से संपर्क करने के लिए मजबूर हो। – therobyouknow
एक अद्वितीय सत्र आईडी नंबर बनाने के लिए, मैं वीबी फ़ंक्शंस में निर्मित दिनांक और टाइमर का उपयोग कर रहा हूं, एक यादृच्छिक संख्या, पीसी के कंप्यूटर नाम/होस्टनाम के साथ जहां स्क्रिप्ट दिनांक आज की तारीख देता है, टाइमर समय बीत चुका है मिलीसेकेंड। यादृच्छिक संख्या और मशीन आईडी के साथ, यह HTTP GET URL कॉल अद्वितीय बनाना चाहिए। 2 समान यूआरएल कॉल की संभावना शून्य है। – therobyouknow