Herlaadpagina na bericht wordt getoond, jQuery

Op dit moment heb ik een formulier waarop de gebruiker de informatie invoert. Het is dan de bewerkte bu jQuery ajax-functie en is ingesteld op return false; zodat er geen herladen van pagina's plaatsvindt nadat de gebruiker een formulier heeft verzonden. Hoewel ik de pagina opnieuw moet laden, maar als ik return false; verwijder, wordt de pagina vernieuwd voordat het succesbericht wordt weergegeven (dit bericht wordt weergegeven nadat de gebruiker gegevens heeft verzonden).

     $.ajax({
      type: "POST",
      url: "scripts/process.php",
      data: dataString,
      success: function() {
       $("#st_message").html("

Your article was successfully added!

"); //I need to reload page after the above message is shown } }); return false;

Dus hoe kan ik de pagina opnieuw laden nadat het bericht

Uw artikel is toegevoegd!

wordt weergegeven, met een kleine vertraging, zeg 2 - 3 seconden, zodat de gebruiker het bericht daadwerkelijk kan lezen.

13

8 antwoord

U kunt een vertraging toevoegen met behulp van de functie setTimeout() , zoals:

// This will reload the page after a delay of 3 seconds
window.setTimeout(function(){location.reload()},3000)

Voor uw behoeften:

$.ajax({
      type: "POST",
      url: "scripts/process.php",
      data: dataString,
      success: function() {
           $("#st_message").html("

Your article was successfully added!

"); window.setTimeout(function(){location.reload()},3000) } }); return false;

Werkvoorbeeld

25
toegevoegd
om de een of andere reden werkt het niet, kan het zijn vanwege een foutieve terugkeer?
toegevoegd de auteur Ilja, de bron

Doe het met zoiets als:

function delayedRedirect(){
    window.location = "/index.php"
}

setTimeout('delayedRedirect()', 3000)

setTimeout is used to delay the redirect function call, in this case you can redirect somewhere to a new URL (just in case you need that too).

Gebruik anders location.reload() om de pagina opnieuw te laden.

3
toegevoegd

Bedoel je zoiets als: window.location.reload() in JavaScript

2
toegevoegd
om de een of andere reden werkt het niet, kan het zijn vanwege een foutieve terugkeer?
toegevoegd de auteur Ilja, de bron

Gebruik de methode setTimeout om de vertraging op te halen en gebruik de methode opnieuw laden om de pagina opnieuw te laden. Let op de parameter true in de aanroep reload om ervoor te zorgen dat de pagina daadwerkelijk opnieuw wordt geladen en niet alleen opnieuw wordt geverfd vanuit de cache.

window.setTimeout(
  function(){
    location.reload(true)
  },
  3000
);
2
toegevoegd
om de een of andere reden werkt het niet, kan het zijn vanwege een foutieve terugkeer?
toegevoegd de auteur Ilja, de bron
Nee, dat zou alleen een probleem kunnen zijn als u probeerde de pagina onmiddellijk opnieuw te laden. Ook zou het veranderen van de volgorde van de code zoals u in een andere opmerking hebt opgemerkt geen enkel verschil maken. Misschien een typfout?
toegevoegd de auteur Guffa, de bron

geef het met

setTimeout("window.location='yourpage.php'",3000);

in uw code:

 $.ajax({
       type: "POST",
       url: "scripts/process.php",
       data: dataString,
       success: function() {
        $("#st_message").html("

Your article was successfully added!

"); setTimeout("window.location='yourpage.php'",3000);//reload after 3 sec. } }); return false;
2
toegevoegd
om de een of andere reden werkt het niet, kan het zijn vanwege een foutieve terugkeer?
toegevoegd de auteur Ilja, de bron
om de een of andere reden moest ik het voor $ ("# st_message") toevoegen. htm ... en het werkt nu dank u)))
toegevoegd de auteur Ilja, de bron
ik heb die omleidingscode hier geprobeerd en het werkt prima ..
toegevoegd de auteur mithunsatheesh, de bron

Time-out gebruiken is een heel slecht idee.

1
toegevoegd
<script type="text/javascript">
 //
 //your action here
 //
 window.setTimeout(function(){self.parent.location="?list"},3000);//after 3 sec go to (?list or example.html page)
 return false;
</script>
1
toegevoegd
 $.ajax({
  type: "POST",
  url: "scripts/process.php",
  data: dataString,
  success: function() {
  var miliseconds = 2000;

   $("#st_message").html("

Your article was successfully added!

"); setTimeout("window.location=window.location", miliseconds); //I need to reload page after the above message is shown } });
1
toegevoegd