จะโหลดหน้าซ้ำทุก ๆ 5 วินาทีได้อย่างไร


183

ฉันกำลังแปลงหนึ่งเลย์เอาท์เป็น html; เมื่อฉันทำการเปลี่ยนแปลงในรหัส / html / css ทุกครั้งที่ฉันต้องกด F5 มีวิธีแก้ปัญหา javascript / jQuery แบบง่าย ๆ ไหม? หลังจากฉันเพิ่มสคริปต์โหลดหน้าเว็บซ้ำทุก ๆ 5 วินาที (หรือเวลาอื่นที่เจาะจง)

คำตอบ:


382
 <meta http-equiv="refresh" content="5; URL=http://www.yourdomain.com/yoursite.html">

ถ้ามันจะต้องมีในสคริปต์ใช้setTimeoutเช่น:

setTimeout(function(){
   window.location.reload(1);
}, 5000);

4
ฉันคิดว่านี่น่าจะเป็นวิธีที่ดีกว่าในการใช้จาวาสคริปต์
Rich

1
หากกรณีการใช้งานคือหน้านั้นจำเป็นต้องรีเฟรชสำหรับผู้เยี่ยมชมฉันอาจเห็นด้วย แต่เพื่อจุดประสงค์ในการพัฒนาการมีบล็อคโค้ดที่คุณสามารถวางลงในหน้าโดยไม่ต้องอัปเดต URI ในแต่ละครั้งจะพิจารณาเป็นพิเศษ ขึ้นอยู่กับ JS ไม่ใช่ปัญหาเมื่อนักพัฒนาเป็นกลุ่มเป้าหมายทั้งหมด
Quentin

4
location.reload (1) จะทำซ้ำ POST หากหน้าปัจจุบันเป็นผลมาจาก POST นั่นอาจไม่เป็นที่น่าพอใจหากคุณต้องการจำลอง meta refresh ใน Javascript
รูเบน

2
การโหลดหน้าปัจจุบัน<meta http-equiv="refresh" content="5">
ซ้ำ

146

หากต้องการโหลดหน้าเดิมซ้ำคุณไม่จำเป็นต้องมีอาร์กิวเมนต์ที่ 2 คุณสามารถใช้:

 <meta http-equiv="refresh" content="30" />

สิ่งนี้ทริกเกอร์การโหลดซ้ำทุก ๆ 30 วินาที


3
มันเป็นกำลังใจเมื่อนำมาใช้สำหรับการเปลี่ยนเส้นทาง มันไม่ได้เลิก (และมันมีประโยชน์มากเมื่อคุณต้องการรีเฟรชหน้าและขี้เกียจเรียน ajax :)
DinoCoderSaurus

มันไม่ทำงานสำหรับฉัน พยายามเพิ่มบรรทัดนี้ใน codepen นี้เพื่อไม่เป็นประโยชน์ codepen.io/css-support/pen/bspdK
ol

1
@lololololol คุณต้องเพิ่มมันในการตั้งค่า "Stuff for <head>" ในพื้นที่การตั้งค่าปากกาของ HTML มันไม่ทำงานหากคุณใส่ไว้ในสคริปต์จริง
Bret

23

สำหรับการโหลดซ้ำอัตโนมัติและล้างแคชหลังจาก 3 วินาทีคุณสามารถทำได้อย่างง่ายดายโดยใช้ฟังก์ชัน setInterval ของ javascript นี่คือรหัสง่ายๆ

$(document).ready(function() {
  setInterval(function() {
    cache_clear()
  }, 3000);
});

function cache_clear() {
  window.location.reload(true);
  // window.location.reload(); use this if you do not remove cache
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<p>Auto reload page and clear cache</p>

และคุณยังสามารถใช้เมตาสำหรับสิ่งนี้

<meta http-equiv="Refresh" content="5">

การรีเฟรชหน้า <script> ทำงาน แต่คุณสามารถอธิบายได้ว่ามันจะล้างแคชได้อย่างไร? หรือเป็นเพียงการรีเฟรชแคช .. กรุณาอธิบาย
ซิลเวอร์

stackoverflow.com/questions/5721704/…หากคุณต้องการเอนเอียงมากกว่านี้โปรด google google
Shafiqul Islam


10

มีเครื่องมือรีเฟรชอัตโนมัติเมื่อเปลี่ยนสำหรับ IE มันเรียกว่า ReloadIt, และสามารถใช้ได้ในhttp://reloadit.codeplex.com ฟรี.

คุณเลือก URL ที่คุณต้องการรีโหลดอัตโนมัติและระบุเส้นทางไดเรกทอรีหนึ่งรายการหรือมากกว่าเพื่อตรวจสอบการเปลี่ยนแปลง กด F12 เพื่อเริ่มการตรวจสอบ

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากที่คุณตั้งค่าให้ย่อเล็กสุด จากนั้นแก้ไขไฟล์เนื้อหาของคุณ เมื่อคุณบันทึกการเปลี่ยนแปลงหน้าจะโหลดใหม่ แบบนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ง่าย ง่าย.


2
เครื่องมือที่ดีสำหรับ IE และขอบคุณสำหรับสิ่งที่เคลื่อนไหว ฉันจะสร้างแบบเดียวกันได้อย่างไร
Wasim Shaikh

@WasimShaikh - บันทึกหน้าจอของคุณไปยังภาพเคลื่อนไหว GIF โดยใช้ScreenToGIF
ashleedawg

5

ตอบโดย @jAndy ควรทำงาน แต่ในFirefoxคุณอาจประสบปัญหาwindow.location.reload (1) ; อาจไม่ทำงานนั่นเป็นประสบการณ์ส่วนตัวของฉัน

ดังนั้นฉันอยากจะแนะนำ:

setTimeout(function() { window.location=window.location;},5000);

นี่คือการทดสอบและทำงานได้ดี


3

ทางเลือกที่ดีถ้าคุณกำลังใช้ Firefox เป็นปลั๊กอิน XRefresh มันจะโหลดหน้าเว็บของคุณทุกครั้งที่ตรวจพบว่าไฟล์ได้รับการแก้ไข ดังนั้นแทนที่จะรีเฟรชทุก ๆ 5 วินาทีมันจะรีเฟรชเมื่อคุณกดบันทึกในเครื่องมือแก้ไข HTML



2

หากคุณกำลังพัฒนาและทดสอบใน Firefox จะมีปลั๊กอินที่ชื่อว่า " ReloadEvery " ซึ่งมีให้คุณโหลดหน้าเว็บใหม่ตามช่วงเวลาที่กำหนด


1

สิ่งนี้จะทำงานใน 5 วินาที

5,000 มิลลิวินาที = 5 วินาที

ใช้สิ่งนี้กับเป้าหมาย_selfหรือสิ่งที่คุณต้องการและหน้าใดที่คุณต้องการรวมถึงตัวมันเอง:

<script type="text/javascript">
function load()
{
setTimeout("window.open('http://YourPage.com', '_self');", 5000);
}
</script>
<body onload="load()"> 

หรือสิ่งนี้ด้วยตนเองอัตโนมัติและไม่มีรหัสเป้าหมายด้วยสิ่งที่คุณต้องการรวมถึงตัวเอง:

<script type="text/javascript">
function load()
{
setTimeout("location.href = 'http://YourPage.com';", 5000);
}
</script>
<body onload="load()"> 

หรือนี่คือถ้ามันเป็นหน้าเดียวกันที่จะโหลดซ้ำตัวเองเท่านั้นและกำหนดเป้าหมายหมวกลากจูงที่คุณต้องการ:

<script type="text/javascript">
function load()
{
setTimeout("window.open(self.location, '_self');", 5000);
}
</script>
<body onload="load()">

ทั้ง 3 ทำสิ่งที่คล้ายกันเพียงในรูปแบบที่แตกต่างกัน


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.