2017-01-18 7 views
5

में लगातार काम नहीं कर रहा है मैंने यहां विभिन्न स्रोत पढ़े हैं और 10 सेकंड के बाद उपयोगकर्ता को रीडायरेक्ट करने के लिए निम्न तरीकों का निर्माण किया है। एक ही समय में नियोजित नहीं है।पेज रीडायरेक्ट PHP या जावास्क्रिप्ट

PHP में प्रथम प्रयास:

header("refresh:10;url=?switch=1") 

फिर, जावास्क्रिप्ट में दूसरा प्रयास: वे दोनों काम

window.setTimeout(function() { 
    location.href = '?switch=1'; 
}, 10000); 

लगभग समय के सभी। इन्हें manifest.js (like this one) का उपयोग करके किसी पृष्ठ पर उपयोग किया जाता है। कभी-कभी जब यूआरएल के टुकड़े बदलते हैं, तो पृष्ठ अब बिल्कुल रीडायरेक्ट नहीं होता है - हालांकि, अक्सर नहीं, रीडायरेक्शन वास्तव में काम करता है।

क्या कोई मुझे बता सकता है कि समस्या क्या हो सकती है, या इस मुद्दे के बारे में पढ़ने के लिए एक अच्छा संसाधन?

संपादित करें: जावास्क्रिप्ट संस्करण में setInterval में बदलकर परिणामस्वरूप यह फिर से प्रयास कर रहा है।

+0

क्यों के बाद 10 सेकंड के उपयोग का प्रयास करें? – bassxzero

+0

@bassxzero क्विज़/मेमोरी गेम – Russell

+1

के हिस्से के रूप में मुझे नहीं लगता कि समस्या कमांड के साथ है लेकिन आपके कोड के साथ है और हम आपको बहुत कम जानकारी के साथ मदद नहीं कर सकते हैं। पृष्ठ को रीफ्रेश/रीडायरेक्ट करने का एक और तरीका '<मेटा http-equiv = "रीफ्रेश करें" सामग्री = "10; url =? Switch = 1"> 'मेटा का उपयोग करके है। – GramThanos

उत्तर

4

जब php के साथ हेडर सेटिंग आप तो पहले किसी भी उत्पादन उत्पन्न होता है क्या करना चाहिए, यह संभव है कि आप से पहले कुछ निश्चित परिस्थितियों में उत्पादन के कुछ प्रकार प्रदान कर रहे हैं PHP हेडर सेट है।

"यह ध्यान रखना महत्वपूर्ण है कि हेडर वास्तव में भेजे जाते हैं जब पहला बाइट ब्राउज़र पर आउटपुट होता है। यदि आप अपनी स्क्रिप्ट में हेडर बदल रहे हैं, तो इसका मतलब है कि गूंज/प्रिंट स्टेटमेंट और आउटपुट बफर की नियुक्ति वास्तव में प्रभावित हो सकती है कौन से शीर्षलेख भेजे जाते हैं। " - http://php.net/manual/en/function.header.php से आप उस पृष्ठ को उपयोगी पढ़ने के लिए पा सकते हैं (यदि आप पहले से ही नहीं गए हैं), तो हेडर से संबंधित समस्याओं का सामना करते समय मुझे यह उपयोगी लगता है।

यदि आप अधिक गहन उत्तर चाहते हैं तो मैं आपके प्रश्न में अधिक संदर्भ (और प्रासंगिक कोड) जोड़ूंगा। हम नहीं जानते कि कोड के साथ क्या गलत है जिसे हम नहीं देख सकते हैं। यदि आप उस कोड को शामिल करते हैं जो यूआरएल टुकड़े का उपयोग करता है जो आप सेटिंग कर रहे हैं तो हमें आपके कोड वास्तव में क्या कर रहा है, इसकी बेहतर समझ हो सकती है, और आप जो त्रुटियां चूक चुके हैं उन्हें पकड़ने में सक्षम हो सकते हैं। टुकड़ों पर एक विकी यहाँ है। बस पूर्णता के लिए। https://en.wikipedia.org/wiki/Fragment_identifier

अंत में, जावास्क्रिप्ट उदाहरण के साथ मैं एक नुकसान में हूं। यह मेरे सिस्टम पर ठीक काम करता है। (हालांकि रीलोड कुछ माइक्रोसेकंड बंद हो सकता है)। आप इसके बजाय setInterval() का उपयोग करने का प्रयास कर सकते हैं?

14

एक प्रश्नोत्तरी/मेमोरी गेम जो एक प्रश्न से दूसरे दस सेकंड में दूसरे स्थान पर जाता है?

बल्कि प्रति सेकंड सेकंड की एप्लिकेशन को पुनः लोड करने के बजाय, एक-पेज ऐप बनाएं जो आपके PHP स्क्रिप्ट से डेटा खींचता है और फिर इसे हर एक्स सेकंड प्रदर्शित करता है।

एक बहुत ही त्वरित उदाहरण (गैर परीक्षण किया):

<!doctype html> 
<html> 
<head> 
    <title>Example</title> 
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 
</head> 
<body> 

Question #<span id="question_number"></span><br /> 
<p id="question"></p> 

<script> 
var questionCounter = 0; 

function loadQuestion(questionNumber) { 
     questionCounter++; 

     $.get("<your_php_script_url>?question="+questionCounter, function(data) { 
       $("#question_number").html(questionCounter); 
       $("#question").html(data.question); 

       setTimeout(function() { 
        loadQuestion(questionCounter); 
       }, 10000); 
     }); 
} 
loadQuestion(questionCounter); 

</script> 

</body> 
</html> 
1
<!doctype html> 
    <html> 
    <head> 
    <title>Example</title> 
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 
    </head> 
    <body> 

    Question #<span id="question_number"></span><br /> 
    <p id="question"></p> 

    <script> 
    var questionCounter = 0; 

    function loadQuestion(questionNumber) { 
     questionCounter++; 

     $.get("<your_php_script_url>?question="+questionCounter, function(data   ) { 
       $("#question_number").html(questionCounter); 
       $("#question").html(data.question); 

       setTimeout(function() { 
        loadQuestion(questionCounter); 
       }, 10000); 
     }); 
} 
loadQuestion(questionCounter); 

</script> 

</body> 
</html> 

यह एक अच्छा उदाहरण है, मैं इस कोड भी इस्तेमाल किया है है।

0

यह इतना सरल उदाहरण

setTimeout(function() { 
    window.location='?switch=1' 
}, 10000); 
0

इस jQuery कोड

window.setTimeout(function(){ 
window.location.replace("?name=Munish"); 
},10000); 
संबंधित मुद्दे