2012-12-18 6 views
5

मेरी साइट को एक मजेदार तस्वीर साइट के रूप में डिज़ाइन किया गया है, जब उपयोगकर्ता यादृच्छिक बटन हिट करता है, उसी पृष्ठ पर एक PHP कोड एक नई यादृच्छिक तस्वीर उत्पन्न करता है, इस तरह यह काम करना चाहिए। हालांकि मुझे एक नई छवि प्राप्त करने के लिए F5 बटन दबा देना है।ब्राउज़र कैशिंग से बचने के लिए PHP यूआरएल स्ट्रिंग

मैं एक और प्रश्न पर पढ़ रहा था कि लोग ब्राउज़र की कैशिंग से बचने के लिए लिंक के अंत में उत्पन्न समय क्वेरी स्ट्रिंग प्राप्त करते हैं, हालांकि मैं इसे अपने जीवन के लिए नहीं समझ सकता।

मैं php के साथ बहुत अच्छा नहीं हूं इसलिए कृपया मुझे मूल वेबपृष्ठ संरचना के बारे में बताएं। धन्यवाद!

+1

आप बेहतर हेडर स्थापित करने के लिए की तुलना में बेहतर है, उपयोग की तुलना में वह 'चाल' –

उत्तर

4

जो आप वर्णन कर रहे हैं उसे कैश ब्रेकर कहा जाता है और आमतौर पर एक यादृच्छिक स्ट्रिंग या यूआरएल में जोड़ा गया टाइमस्टैम्प होता है। आप अपनी छवि को संदर्भित कर रहे हैं, इसे इस तरह पहले जोड़ें:

echo get_random_image_url() . '?' . time(); 

यह एक यूआरएल में परिणाम होगा इस तरह लग रही:

http://your.server.com/random.jpg?1355862360

नोट: get_random_image_url सिर्फ एक उदाहरण है, लेकिन मैं कर रहा हूँ सुनिश्चित करें कि आपको विचार मिल गया है।

यह धागा ब्याज का हो सकता है: How to force a web browser NOT to cache images

+0

वास्तव में एक php फ़ाइल का संदर्भ देता है जो मेरी होस्टिंग से यादृच्छिक मजेदार छवि खींचता है। मुझे खेद है, मैं सीएसएस और एचटीएमएल के साथ बहुत अच्छा हूं लेकिन मैंने कुछ महीने पहले ही सीखना शुरू कर दिया था। किसी और मदद की सराहना की जाएगी। –

0

यह बहुत आसान है हल करने के लिए किया जा: उदाहरण के लिए, निम्नलिखित दो लिंक की जाँच करें:

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg?randomValue

दो लिंक के दोनों एक ही छवि खुला होगा।

यह आपका समाधान है!

image.png?<?php echo someRandom();?> 

इस समुदाय या गूगल एक तरह से एक समारोह है कि यादृच्छिक मान gemnerates लिखने के लिए: आप अपनी छवि फ़ाइल के अंत में जोड़ने के लिए एक यादृच्छिक मान नाम है।

इसके अलावा का उपयोग कर समाधान है, निम्नलिखित

<img id="funny" src="scripts/php_rand_image.php" /> 
<a href="javascript:changeImage('funny')">Get another image</a> 
<script> 
function changeImage(ob){ 
image = document.getElementById(ob) 
d = new Date(); 
image.src = image.src+'?'+d.getTime(); 
} 
</script> 
+0

मैंने आपकी प्रतिक्रिया का प्रयास किया क्योंकि यह सबसे आसान प्रतीत होता है, धन्यवाद, लेकिन जब मैंने इसे यूआरएल के अंत में रखा, तो पूर्व: index.php फ़ाइल में "" पृष्ठ अब प्रदर्शित नहीं होता है। कोई प्रतिपादन? –

+0

आपको यह ध्यान रखना होगा कि: someRandom() एक कस्टम फ़ंक्शन है जिसे आपको लिखना है। कुछ रैंडम() छवि यूआरएल में प्रत्यय होना चाहिए। दूसरी तरफ, मैं जावास्क्रिप्ट निर्भर समाधान का उपयोग करने की सलाह देता हूं। – SaidbakR

0

suupose मुझे लगता है कि हेडर का उपयोग यूआरएल चाल

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

http://php.net/manual/en/function.header.php

+0

बढ़िया है और क्या मैं इसे वेबपृष्ठ संरचना में कहीं भी रख सकता हूं? पूर्व। मुख्य शरीर –