প্রথম পৃষ্ঠা লোডের পরে ওয়ান টাইম পৃষ্ঠা রিফ্রেশ


84

আমি একটি জাভাস্ক্রিপ্ট কোড প্রয়োগ করতে চাই যা এতে উল্লেখ করেছে: পৃষ্ঠাটি সম্পূর্ণরূপে লোড হয়ে থাকলে, পৃষ্ঠাটি তাত্ক্ষণিকভাবে রিফ্রেশ করুন, তবে কেবল একবার। আমি "একবারে একবার" আটকে আছি:

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

এটি "একবারে একবার" ছাড়া একটি লুপ দেয়। jQuery লোড হয় যদি এটি সাহায্য করে।


4
পৃষ্ঠাটি পুনরায় লোড করে আপনি কী সম্পাদন করছেন? সমস্যা সমাধানের আরও ভাল উপায় হতে পারে।
ফিশব্যাসকেট গর্ডো

পৃষ্ঠায় একটি jquery পূর্ণস্ক্রিন গ্যালারী স্ক্রিপ্ট শুরু হয়, কিন্তু থাম্বগুলি কখনই সম্পূর্ণ লোড হয় না। আপনি যদি পৃষ্ঠার জন্য "রিফ্রেশ" বোতামটি চাপান তবে এটি কেবলমাত্র বাকীগুলি লোড করে ... তাই এটি স্পষ্ট যে আমি কোনও ধরণের কাজের জন্য অনুসন্ধান করছি ... থাম্বগুলি পৃথকভাবে দেওয়া খুব জটিল (সিএমএস), অন্যান্য বাগফিক্সগুলি না সত্যিই সাহায্য করবে না ... এটি প্রায় 4 এমবি চিত্রের। প্রত্যেককে 300 কেবি, কিছু সময় চিত্রগুলির থাম্বগুলি পুনরায় আকার দেওয়া হয় না এবং প্রদর্শিত হয় না (সময়সীমা? খুব বেশি, খুব বড় ??) তবে পৃষ্ঠাটি লোডিং শেষ করে।
মার্টিন

Pjax pjax.heroku.com ব্যবহার করার সময় আমি একই ধরণের সমস্যা (জাভাস্ক্রিপ্টগুলি কাজ করছে না) অভিজ্ঞতা পেয়েছি
প্রতীক খাদলোয়া

উত্তর:


98

আমি এইভাবে হ্যাশ ব্যবহার করতে চাই:

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

হ্যাঁ আমি এটা করতে চাইছিলাম।
পি থ্রিডোসোলা

হ্যাঁ, আমার একটি G _GET প্যারামিটার ব্যবহারের পরামর্শের অনুরূপ, তবে
জেএসে

4
ইউআরএলগুলিতে ইতিমধ্যে হ্যাশ না থাকা পর্যন্ত এটি সবচেয়ে সহজ। কোন ক্ষেত্রে, একটি জিইটি প্যারামিটার পড়া ভাল হবে।
ডেভিড

ইউআরএল যুক্ত না করে আপনি কীভাবে এটি করতে পারেন?
শূন্য_কুল

চতুর সমাধান! এটা ভালবাসা! ❤
আনু

50

আমি যখন এই সমস্যার মুখোমুখি হই তখন আমি এখানে অনুসন্ধান করি তবে বেশিরভাগ উত্তর বিদ্যমান ইউআরএল সংশোধন করার চেষ্টা করে। এখানে আরও একটি উত্তর যা লোকালস্টোরেশন ব্যবহার করে আমার পক্ষে কাজ করে।

<script type='text/javascript'>

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

</script>

সৃজনশীল সমাধান।
জোজো

@ হাইমাই থেক্স অনেক __ / \ __
প্রদীপ কুমার

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>

যদি শর্ত থাকে তবে পৃষ্ঠাটি একবারে পুনরায় লোড হবে I এটা আমার জন্য কাজ করে।


9

এই লিঙ্কটি দেখুন এটিতে একটি জাভা-স্ক্রিপ্ট কোড রয়েছে যা আপনি কেবল একবার আপনার পৃষ্ঠা রিফ্রেশ করতে ব্যবহার করতে পারেন

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

আপনার পৃষ্ঠাটি রিফ্রেশ করার একাধিক উপায় রয়েছে:

সমাধান 1 :

পৃষ্ঠাগুলি একবার ব্যবহার করার পরে একবার তাজা করতে:

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

সলিউশন 2:

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

তারপরে আপনার পরিবর্তনটি করুন

<Body onLoad=" LoadOnce()" >

সমাধান 3:

response.setIntHeader("Refresh", 1);

তবে এই সমাধানটি পৃষ্ঠাটি একাধিকবার রিফ্রেশ করবে আপনার নির্দিষ্ট সময়ের উপর নির্ভর করে

আমি আশা করি যে আপনাকে সাহায্য করবে


4
<script>

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

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

</script>

এটি পুরোপুরি কাজ করে


দ্রষ্টব্য: 1000 এর অর্থ 1 সেকেন্ড আপনি এটি যে কোনও সময় বিরতিতে চান সেট করতে পারেন।
গডউইন টমি

3

আমি এটি পৃষ্ঠার আমার হেড ট্যাগগুলির মধ্যে রেখে দিয়েছি a

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

"এমসি" মানটি আপনি যা চান সেট করতে পারেন তবে দুটি লাইনেই দুটি মিলিয়ে যেতে হবে। এবং "= মোবাইল" "= যেকোন কিছু" হতে পারে এটি রিফ্রেশ বন্ধ করার জন্য কেবল একটি মান প্রয়োজন।


3

অবশেষে, আমি দুই মাসের গবেষণার পরে পৃষ্ঠা পুনরায় লোড করার জন্য একটি সমাধান পেয়েছি।

এটি আমার ক্লায়েন্টাইড জেএস প্রকল্পে দুর্দান্ত কাজ করে।

আমি একটি ফাংশন লিখেছি যা নীচে কেবল পুনরায় লোড পৃষ্ঠাটি।

1) প্রথম ব্রাউজার ডোমলোডিং সময়

2) বর্তমান টাইমস্ট্যাম্প পান

3) ব্রাউজার domloading সময় + 10 সেকেন্ড

৪) যদি ব্রাউজারটি এখনকার টাইমস্ট্যাম্পের চেয়ে সময় + 10 সেকেন্ড বড় হয় তবে পৃষ্ঠাটি "রিলোডপেজ ();" এর মাধ্যমে রিফ্রেশ করতে সক্ষম হবে;

তবে যদি এটি 10 ​​সেকেন্ডের চেয়ে বড় না হয় তার মানে পৃষ্ঠাটি কেবল এভাবে পুনরায় লোড করা হয় এটি বারবার পুনরায় লোড হবে না।

5) অতএব আপনি যদি "রিলোডপেজ ()" কল করেন; আপনার জেএস ফাইল পৃষ্ঠার কোথাও ফাংশনটি কেবল একবার পুনরায় লোড হবে।

আশা করি যে কাউকে সাহায্য করবে

// 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();



0

আপনাকে জিইটি বা পোস্ট তথ্য ব্যবহার করতে হবে। সহজ হবে। আপনার জেএস ইউআরএলটি পরীক্ষা করবে, যদি কোনও নির্দিষ্ট প্যারাম না পাওয়া যায় তবে এটি কেবল পৃষ্ঠাটি রিফ্রেশ করবে না, বরং ব্যবহারকারীকে একটি "আলাদা" ইউআরএল প্রেরণ করবে, যা একই URL হবে তবে এতে জিইটি প্যারামিটার সহ ।

উদাহরণস্বরূপ:
http://example.com -> রিফ্রেশ করবে
http://example.com?refresh=no -> রিফ্রেশ হবে না

যদি আপনি অগোছালো ইউআরএল না চান, তবে আমি শরীরের শুরুতে এমন কিছু পিএইচপি অন্তর্ভুক্ত করব যা একটি গোপন মান প্রতিলিপি করে যা পৃষ্ঠাটিতে রিফ্রেশ না করার জন্য প্রয়োজনীয় পোষ্ট পরমকে প্রাথমিক পৃষ্ঠার অনুরোধে অন্তর্ভুক্ত করা হয়েছিল কিনা তা নির্ধারণ করে বলে। তার ঠিক পরে, আপনি সেই মানটি পরীক্ষা করতে কিছু জেএস অন্তর্ভুক্ত করবেন এবং প্রয়োজনে পোস্ট করা তথ্য সহ পৃষ্ঠাটি রিফ্রেশ করুন।



0

নীচের কোড দিয়ে চেষ্টা করুন

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

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

    return;
    }
});



0

এখানে সেটটাইমআউট সহ আরও একটি সমাধান রয়েছে, নিখুঁত নয়, তবে এটি কার্যকর করে:

এটির বর্তমান ইউআরএলটিতে একটি প্যারামিটার প্রয়োজন, সুতরাং বর্তমান ইউআরএলটিকে ঠিক এমনভাবে চিত্রিত করুন:

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 = "বাহ্যিক" ব্যবহার করুন উদাহরণ

<li><a href="index.html" rel="external" data-theme="c">Home</a></li>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.