पहले पृष्ठ लोड के बाद एक समय पृष्ठ ताज़ा


84

मैं एक जावास्क्रिप्ट कोड लागू करना चाहता हूं जो यह बताता है: यदि पृष्ठ पूरी तरह से लोड है, तो पृष्ठ को तुरंत ताज़ा करें, लेकिन केवल एक बार। मैं "केवल एक बार" पर अटक गया हूं:

window.onload = function () {window.location.reload()}

यह "केवल एक बार" के बिना एक लूप देता है। jQuery लोड हो जाता है अगर यह मदद करता है।


1
पृष्ठ को पुनः लोड करके आप क्या पूरा कर रहे हैं? समस्या को हल करने का एक बेहतर तरीका हो सकता है।
FishBasketGordo

पेज पर एक jquery फुलस्क्रीन गैलरी स्क्रिप्ट शुरू होती है, लेकिन अंगूठे कभी भी पूरी तरह से लोड नहीं होते हैं। यदि आप पृष्ठ के लिए "ताज़ा करें" बटन दबाते हैं, तो यह शेष लोगों को लोड करता है ... इसलिए यह स्पष्ट है कि मैं किसी प्रकार के वर्कअराउंड की खोज कर रहा हूं ... अंगूठे को अलग से देना बहुत जटिल है (सीएमएस), अन्य बगफिक्स नहीं किया 'टी वास्तव में मदद ... यह छवियों के 4 एमबी है, लगभग। 300kb प्रत्येक, कुछ बिंदुओं पर छवियों के अंगूठे को आकार नहीं दिया जाता है और अब प्रदर्शित नहीं किया जाता है (टाइमआउट; बहुत अधिक, बहुत बड़ा ??) लेकिन पृष्ठ लोड करना समाप्त कर देता है।
मार्टिन

मैंने pjax pjax.heroku.com का उपयोग करते समय एक समान समस्या (काम नहीं करने वाली जावास्क्रिप्ट) का अनुभव किया है
प्रतिक खडलो

जवाबों:


97

मैं कहता हूं कि इस तरह से हैश का उपयोग करें:

window.onload = function() {
    if(!window.location.hash) {
        window.location = window.location + '#loaded';
        window.location.reload();
    }
}

हां। मैं बस सुझाव है कि करने वाला था।
p3drosola 16

हाँ, $ _GET पैरामीटर का उपयोग करने के मेरे सुझाव के समान है, लेकिन JS में हैश तक पहुँचने के बाद से $ _GET परम तक पहुँचने की तुलना में थोड़ा आसान है ...
17

4
यह तब तक सबसे सरल है जब तक URL में पहले से ही हैश नहीं है। किस स्थिति में, GET पैरामीटर पढ़ना बेहतर होगा।
डेविड

आप url को कैसे जोड़े बिना ऐसा कर सकते हैं?
जीरो_कूल

चतुर समाधान! इसे प्यार करना! ❤
अनु

48

जब मैं इस समस्या को पूरा करता हूं, तो मैं यहां खोजता हूं लेकिन अधिकांश उत्तर मौजूदा यूआरएल को संशोधित करने की कोशिश कर रहे हैं। यहाँ एक और जवाब है जो मेरे लिए स्थानीयस्टोरेज का उपयोग करके काम करता है।

<script type='text/javascript'>

(function()
{
  if( window.localStorage )
  {
    if( !localStorage.getItem('firstLoad') )
    {
      localStorage['firstLoad'] = true;
      window.location.reload();
    }  
    else
      localStorage.removeItem('firstLoad');
  }
})();

</script>

रचनात्मक समाधान।
जोजो

@ हाइमी Thx a __ / \ __
प्रदीप कुमार

30
<script type="text/javascript">
$(document).ready(function(){    
    //Check if the current URL contains '#'
    if(document.URL.indexOf("#")==-1){
        // Set the URL to whatever it was plus "#".
        url = document.URL+"#";
        location = "#";

        //Reload the page
        location.reload(true);
    }
});
</script>

यदि इस स्थिति के कारण पृष्ठ केवल एक बार पुनः लोड होगा। मुझे इस समस्या का सामना करना पड़ा और जब मैं खोज करता हूं, तो मुझे यह अच्छा समाधान मिला। यह मेरे लिए ठीक काम करता है।


9

इस लिंक को जांचें इसमें एक जावा-स्क्रिप्ट कोड है जिसे आप केवल एक बार अपने पेज को रीफ्रेश करने के लिए उपयोग कर सकते हैं

http://www.hotscripts.com/forums/javascript/4460-how-do-i-have-page-automatically-refesh-only-once.html

आपके पृष्ठ को रीफ्रेश करने के एक से अधिक तरीके हैं:

solution1 :

हर बार उपयोग के बाद खुलने वाले पृष्ठ को ताज़ा करने के लिए:

<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>

sollution2:

<script language=" JavaScript" >
<!-- 
function LoadOnce() 
{ 
window.location.reload(); 
} 
//-->
</script>

फिर अपना कहना बदलें

<Body onLoad=" LoadOnce()" >

solution3:

response.setIntHeader("Refresh", 1);

लेकिन यह समाधान आपके द्वारा निर्दिष्ट समय पर निर्भर करते हुए एक से अधिक बार पृष्ठ को ताज़ा करेगा

मुझे उम्मीद है कि इससे आपको मदद मिलेगी


3

मैं इसे पृष्ठ के अपने मुख्य टैग के अंदर डालता हूं, जिस पर मैं एक ही लोड चाहता हूं:

<?php if(!isset($_GET['mc'])) {
echo '<meta http-equiv="refresh" content= "0;URL=?mc=mobile" />';
} ?>

मान "mc" को आप जो चाहें सेट कर सकते हैं, लेकिन दोनों को 2 लाइनों में मेल खाना चाहिए। और "= मोबाइल" "= कुछ भी हो सकता है" यह सिर्फ ताज़ा रोकने के लिए एक मूल्य की आवश्यकता है।


3

अंत में, मुझे दो महीने के शोध के बाद एक बार पृष्ठ को फिर से लोड करने का समाधान मिला।

यह मेरे ग्राहकों की जेएस परियोजना पर ठीक काम करता है।

मैंने एक फ़ंक्शन लिखा है जो केवल एक बार पृष्ठ को फिर से लोड करने के नीचे है।

1) सबसे पहले ब्राउजर डोमेस्टिक टाइम हो रहा है

2) वर्तमान टाइमस्टैम्प प्राप्त करें

3) ब्राउजर डोमोडिंग टाइम + 10 सेकंड

4) यदि ब्राउज़र डोमेस्टिक टाइम लोड कर रहा है + वर्तमान में टाइमस्टैम्प से 10 सेकंड बड़ा है तो पेज "रीलोडेज ();" के माध्यम से रीफ्रेश किया जा सकता है।

लेकिन अगर यह 10 सेकंड से बड़ा नहीं है, तो इसका मतलब है कि पेज सिर्फ इस तरह रीलोडेड है और इसे बार-बार लोड नहीं किया जाएगा।

5) इसलिए अगर आप "reloadPage ();" आपके js फ़ाइल पृष्ठ में कहीं पर कार्य केवल एक बार पुनः लोड किया जाएगा।

आशा है कि किसी की मदद करता है

// Reload Page Function //
                function reloadPage() {
                    var currentDocumentTimestamp = new Date(performance.timing.domLoading).getTime();
                    // Current Time //
                    var now = Date.now();
                    // Total Process Lenght as Minutes //
                    var tenSec = 10 * 1000;
                    // End Time of Process //
                    var plusTenSec = currentDocumentTimestamp + tenSec;
                    if (now > plusTenSec) {
                        location.reload();
                    }
                }


                // You can call it in somewhere //
                reloadPage();

3
<script>

function reloadIt() {
    if (window.location.href.substr(-2) !== "?r") {
        window.location = window.location.href + "?r";
    }
}

setTimeout('reloadIt()', 1000)();

</script>

यह पूरी तरह से काम करता है


नोट: १००० का अर्थ है १ सेकंड आप इसे निर्धारित कर सकते हैं कि आप जो भी समय अंतराल चाहते हैं।
गॉडविन टॉमी


0

आपको GET या POST जानकारी का उपयोग करने की आवश्यकता होगी। GET सबसे सरल होगा। आपका JS URL की जाँच करेगा, अगर एक निश्चित परम नहीं मिला, तो यह पृष्ठ को ताज़ा नहीं करेगा, बल्कि उपयोगकर्ता को "अलग" url पर भेजेगा, जो कि एक ही URL होगा, लेकिन इसमें GET पैरामीटर होगा ।

उदाहरण के लिए:
http://example.com -> ताज़ा करेगा
http://example.com?refresh=no -> ताज़ा नहीं होगा

यदि आप गन्दा URL नहीं चाहते हैं, तो मैं शरीर की शुरुआत में कुछ PHP अधिकार शामिल करूँगा जो कि एक छिपे हुए मूल्य को इकोस करता है जो कि निबंधात्मक रूप से कहता है कि क्या पृष्ठ को ताज़ा नहीं करने के लिए आवश्यक POST परम प्रारंभिक पृष्ठ अनुरोध में शामिल था। उसके ठीक बाद, आप उस मूल्य की जाँच करने के लिए कुछ जेएस को शामिल करेंगे और यदि आवश्यक हो तो उस पोस्ट की जानकारी के साथ पृष्ठ को ताज़ा करें।


0

इस के साथ प्रयास करें

var element = document.getElementById('position');        
element.scrollIntoView(true);`

0

कृपया नीचे दिए गए कोड के साथ प्रयास करें

var windowWidth = $(window).width();

$(window).resize(function() {
    if(windowWidth != $(window).width()){
    location.reload();

    return;
    }
});


0

इसे इस्तेमाल करो

<body onload =  "if (location.search.length < 1){window.location.reload()}">

0

इस तरह window.localStorage ... का उपयोग करें

var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
    window.location.reload();
    $window.localStorage.setItem('refresh', "1");
}

यह मेरे लिए काम है


0

यहाँ एक और समाधान के साथ setTimeout, सही नहीं है, लेकिन यह काम करता है:

यह वर्तमान यूआरएल में एक पैरामीटर की आवश्यकता है, तो बस वर्तमान यूआरएल इस तरह दिखता है:

www.google.com?time=1

निम्नलिखित कोड पृष्ठ को केवल एक बार पुनः लोड करें:

 // Reload Page Function //
    // get the time parameter //
        let parameter = new URLSearchParams(window.location.search);
          let time = parameter.get("time");
          console.log(time)//1
          let timeId;
          if (time == 1) {
    // reload the page after 0 ms //
           timeId = setTimeout(() => {
            window.location.reload();//
           }, 0);
   // change the time parameter to 0 //
           let currentUrl = new URL(window.location.href);
           let param = new URLSearchParams(currentUrl.search);
           param.set("time", 0);
   // replace the time parameter in url to 0; now it is 0 not 1 //
           window.history.replaceState({}, "", `${currentUrl.pathname}?${param}`);
        // cancel the setTimeout function after 0 ms //
           let currentTime = Date.now();
           if (Date.now() - currentTime > 0) {
            clearTimeout(timeId);
           }
          }

स्वीकृत उत्तर कम से कम कोड का उपयोग करता है और समझने में आसान है। मैंने अभी इसका एक और समाधान प्रदान किया है।

आशा है कि यह दूसरों की मदद करता है।


-1

नीचे की तरह rel = "external" का प्रयोग उदाहरण है

<li><a href="index.html" rel="external" data-theme="c">Home</a></li>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.